mirror of
https://git.aaro.dev/VRCBoard/vrcboard-udon.git
synced 2026-03-17 02:49:46 +00:00
feat: GitHub integration and URL management
All checks were successful
Create Unity Package / package (push) Successful in 8s
All checks were successful
Create Unity Package / package (push) Successful in 8s
This commit is contained in:
@@ -46,7 +46,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
serializationData:
|
serializationData:
|
||||||
SerializedFormat: 0
|
SerializedFormat: 2
|
||||||
SerializedBytes:
|
SerializedBytes:
|
||||||
ReferencedUnityObjects: []
|
ReferencedUnityObjects: []
|
||||||
SerializedBytesString:
|
SerializedBytesString:
|
||||||
@@ -55,118 +55,233 @@ MonoBehaviour:
|
|||||||
PrefabModifications: []
|
PrefabModifications: []
|
||||||
SerializationNodes: []
|
SerializationNodes: []
|
||||||
_udonSharpBackingUdonBehaviour: {fileID: 1195327852248355995}
|
_udonSharpBackingUdonBehaviour: {fileID: 1195327852248355995}
|
||||||
|
GIT_USERNAME:
|
||||||
|
GIT_REPO:
|
||||||
debugMode: 1
|
debugMode: 1
|
||||||
vrcBoardDomain: mydomain.vrcboard.app
|
vrcBoardDomain: mydomain.vrcboard.app
|
||||||
periodicUpdateInterval: 60
|
periodicUpdateInterval: 60
|
||||||
atlasUrlCount: 100
|
atlasUrlCount: 100
|
||||||
vrcBoardComponents: []
|
vrcBoardComponents: []
|
||||||
atlasUrls:
|
waitIndex: 0
|
||||||
- url: http://mydomain.vrcboard.app/atlas/0
|
_sourceAtlasUrls:
|
||||||
- url: http://mydomain.vrcboard.app/atlas/1
|
- url: https://mydomain.vrcboard.app/atlas/0
|
||||||
- url: http://mydomain.vrcboard.app/atlas/2
|
- url: https://mydomain.vrcboard.app/atlas/1
|
||||||
- url: http://mydomain.vrcboard.app/atlas/3
|
- url: https://mydomain.vrcboard.app/atlas/2
|
||||||
- url: http://mydomain.vrcboard.app/atlas/4
|
- url: https://mydomain.vrcboard.app/atlas/3
|
||||||
- url: http://mydomain.vrcboard.app/atlas/5
|
- url: https://mydomain.vrcboard.app/atlas/4
|
||||||
- url: http://mydomain.vrcboard.app/atlas/6
|
- url: https://mydomain.vrcboard.app/atlas/5
|
||||||
- url: http://mydomain.vrcboard.app/atlas/7
|
- url: https://mydomain.vrcboard.app/atlas/6
|
||||||
- url: http://mydomain.vrcboard.app/atlas/8
|
- url: https://mydomain.vrcboard.app/atlas/7
|
||||||
- url: http://mydomain.vrcboard.app/atlas/9
|
- url: https://mydomain.vrcboard.app/atlas/8
|
||||||
- url: http://mydomain.vrcboard.app/atlas/10
|
- url: https://mydomain.vrcboard.app/atlas/9
|
||||||
- url: http://mydomain.vrcboard.app/atlas/11
|
- url: https://mydomain.vrcboard.app/atlas/10
|
||||||
- url: http://mydomain.vrcboard.app/atlas/12
|
- url: https://mydomain.vrcboard.app/atlas/11
|
||||||
- url: http://mydomain.vrcboard.app/atlas/13
|
- url: https://mydomain.vrcboard.app/atlas/12
|
||||||
- url: http://mydomain.vrcboard.app/atlas/14
|
- url: https://mydomain.vrcboard.app/atlas/13
|
||||||
- url: http://mydomain.vrcboard.app/atlas/15
|
- url: https://mydomain.vrcboard.app/atlas/14
|
||||||
- url: http://mydomain.vrcboard.app/atlas/16
|
- url: https://mydomain.vrcboard.app/atlas/15
|
||||||
- url: http://mydomain.vrcboard.app/atlas/17
|
- url: https://mydomain.vrcboard.app/atlas/16
|
||||||
- url: http://mydomain.vrcboard.app/atlas/18
|
- url: https://mydomain.vrcboard.app/atlas/17
|
||||||
- url: http://mydomain.vrcboard.app/atlas/19
|
- url: https://mydomain.vrcboard.app/atlas/18
|
||||||
- url: http://mydomain.vrcboard.app/atlas/20
|
- url: https://mydomain.vrcboard.app/atlas/19
|
||||||
- url: http://mydomain.vrcboard.app/atlas/21
|
- url: https://mydomain.vrcboard.app/atlas/20
|
||||||
- url: http://mydomain.vrcboard.app/atlas/22
|
- url: https://mydomain.vrcboard.app/atlas/21
|
||||||
- url: http://mydomain.vrcboard.app/atlas/23
|
- url: https://mydomain.vrcboard.app/atlas/22
|
||||||
- url: http://mydomain.vrcboard.app/atlas/24
|
- url: https://mydomain.vrcboard.app/atlas/23
|
||||||
- url: http://mydomain.vrcboard.app/atlas/25
|
- url: https://mydomain.vrcboard.app/atlas/24
|
||||||
- url: http://mydomain.vrcboard.app/atlas/26
|
- url: https://mydomain.vrcboard.app/atlas/25
|
||||||
- url: http://mydomain.vrcboard.app/atlas/27
|
- url: https://mydomain.vrcboard.app/atlas/26
|
||||||
- url: http://mydomain.vrcboard.app/atlas/28
|
- url: https://mydomain.vrcboard.app/atlas/27
|
||||||
- url: http://mydomain.vrcboard.app/atlas/29
|
- url: https://mydomain.vrcboard.app/atlas/28
|
||||||
- url: http://mydomain.vrcboard.app/atlas/30
|
- url: https://mydomain.vrcboard.app/atlas/29
|
||||||
- url: http://mydomain.vrcboard.app/atlas/31
|
- url: https://mydomain.vrcboard.app/atlas/30
|
||||||
- url: http://mydomain.vrcboard.app/atlas/32
|
- url: https://mydomain.vrcboard.app/atlas/31
|
||||||
- url: http://mydomain.vrcboard.app/atlas/33
|
- url: https://mydomain.vrcboard.app/atlas/32
|
||||||
- url: http://mydomain.vrcboard.app/atlas/34
|
- url: https://mydomain.vrcboard.app/atlas/33
|
||||||
- url: http://mydomain.vrcboard.app/atlas/35
|
- url: https://mydomain.vrcboard.app/atlas/34
|
||||||
- url: http://mydomain.vrcboard.app/atlas/36
|
- url: https://mydomain.vrcboard.app/atlas/35
|
||||||
- url: http://mydomain.vrcboard.app/atlas/37
|
- url: https://mydomain.vrcboard.app/atlas/36
|
||||||
- url: http://mydomain.vrcboard.app/atlas/38
|
- url: https://mydomain.vrcboard.app/atlas/37
|
||||||
- url: http://mydomain.vrcboard.app/atlas/39
|
- url: https://mydomain.vrcboard.app/atlas/38
|
||||||
- url: http://mydomain.vrcboard.app/atlas/40
|
- url: https://mydomain.vrcboard.app/atlas/39
|
||||||
- url: http://mydomain.vrcboard.app/atlas/41
|
- url: https://mydomain.vrcboard.app/atlas/40
|
||||||
- url: http://mydomain.vrcboard.app/atlas/42
|
- url: https://mydomain.vrcboard.app/atlas/41
|
||||||
- url: http://mydomain.vrcboard.app/atlas/43
|
- url: https://mydomain.vrcboard.app/atlas/42
|
||||||
- url: http://mydomain.vrcboard.app/atlas/44
|
- url: https://mydomain.vrcboard.app/atlas/43
|
||||||
- url: http://mydomain.vrcboard.app/atlas/45
|
- url: https://mydomain.vrcboard.app/atlas/44
|
||||||
- url: http://mydomain.vrcboard.app/atlas/46
|
- url: https://mydomain.vrcboard.app/atlas/45
|
||||||
- url: http://mydomain.vrcboard.app/atlas/47
|
- url: https://mydomain.vrcboard.app/atlas/46
|
||||||
- url: http://mydomain.vrcboard.app/atlas/48
|
- url: https://mydomain.vrcboard.app/atlas/47
|
||||||
- url: http://mydomain.vrcboard.app/atlas/49
|
- url: https://mydomain.vrcboard.app/atlas/48
|
||||||
- url: http://mydomain.vrcboard.app/atlas/50
|
- url: https://mydomain.vrcboard.app/atlas/49
|
||||||
- url: http://mydomain.vrcboard.app/atlas/51
|
- url: https://mydomain.vrcboard.app/atlas/50
|
||||||
- url: http://mydomain.vrcboard.app/atlas/52
|
- url: https://mydomain.vrcboard.app/atlas/51
|
||||||
- url: http://mydomain.vrcboard.app/atlas/53
|
- url: https://mydomain.vrcboard.app/atlas/52
|
||||||
- url: http://mydomain.vrcboard.app/atlas/54
|
- url: https://mydomain.vrcboard.app/atlas/53
|
||||||
- url: http://mydomain.vrcboard.app/atlas/55
|
- url: https://mydomain.vrcboard.app/atlas/54
|
||||||
- url: http://mydomain.vrcboard.app/atlas/56
|
- url: https://mydomain.vrcboard.app/atlas/55
|
||||||
- url: http://mydomain.vrcboard.app/atlas/57
|
- url: https://mydomain.vrcboard.app/atlas/56
|
||||||
- url: http://mydomain.vrcboard.app/atlas/58
|
- url: https://mydomain.vrcboard.app/atlas/57
|
||||||
- url: http://mydomain.vrcboard.app/atlas/59
|
- url: https://mydomain.vrcboard.app/atlas/58
|
||||||
- url: http://mydomain.vrcboard.app/atlas/60
|
- url: https://mydomain.vrcboard.app/atlas/59
|
||||||
- url: http://mydomain.vrcboard.app/atlas/61
|
- url: https://mydomain.vrcboard.app/atlas/60
|
||||||
- url: http://mydomain.vrcboard.app/atlas/62
|
- url: https://mydomain.vrcboard.app/atlas/61
|
||||||
- url: http://mydomain.vrcboard.app/atlas/63
|
- url: https://mydomain.vrcboard.app/atlas/62
|
||||||
- url: http://mydomain.vrcboard.app/atlas/64
|
- url: https://mydomain.vrcboard.app/atlas/63
|
||||||
- url: http://mydomain.vrcboard.app/atlas/65
|
- url: https://mydomain.vrcboard.app/atlas/64
|
||||||
- url: http://mydomain.vrcboard.app/atlas/66
|
- url: https://mydomain.vrcboard.app/atlas/65
|
||||||
- url: http://mydomain.vrcboard.app/atlas/67
|
- url: https://mydomain.vrcboard.app/atlas/66
|
||||||
- url: http://mydomain.vrcboard.app/atlas/68
|
- url: https://mydomain.vrcboard.app/atlas/67
|
||||||
- url: http://mydomain.vrcboard.app/atlas/69
|
- url: https://mydomain.vrcboard.app/atlas/68
|
||||||
- url: http://mydomain.vrcboard.app/atlas/70
|
- url: https://mydomain.vrcboard.app/atlas/69
|
||||||
- url: http://mydomain.vrcboard.app/atlas/71
|
- url: https://mydomain.vrcboard.app/atlas/70
|
||||||
- url: http://mydomain.vrcboard.app/atlas/72
|
- url: https://mydomain.vrcboard.app/atlas/71
|
||||||
- url: http://mydomain.vrcboard.app/atlas/73
|
- url: https://mydomain.vrcboard.app/atlas/72
|
||||||
- url: http://mydomain.vrcboard.app/atlas/74
|
- url: https://mydomain.vrcboard.app/atlas/73
|
||||||
- url: http://mydomain.vrcboard.app/atlas/75
|
- url: https://mydomain.vrcboard.app/atlas/74
|
||||||
- url: http://mydomain.vrcboard.app/atlas/76
|
- url: https://mydomain.vrcboard.app/atlas/75
|
||||||
- url: http://mydomain.vrcboard.app/atlas/77
|
- url: https://mydomain.vrcboard.app/atlas/76
|
||||||
- url: http://mydomain.vrcboard.app/atlas/78
|
- url: https://mydomain.vrcboard.app/atlas/77
|
||||||
- url: http://mydomain.vrcboard.app/atlas/79
|
- url: https://mydomain.vrcboard.app/atlas/78
|
||||||
- url: http://mydomain.vrcboard.app/atlas/80
|
- url: https://mydomain.vrcboard.app/atlas/79
|
||||||
- url: http://mydomain.vrcboard.app/atlas/81
|
- url: https://mydomain.vrcboard.app/atlas/80
|
||||||
- url: http://mydomain.vrcboard.app/atlas/82
|
- url: https://mydomain.vrcboard.app/atlas/81
|
||||||
- url: http://mydomain.vrcboard.app/atlas/83
|
- url: https://mydomain.vrcboard.app/atlas/82
|
||||||
- url: http://mydomain.vrcboard.app/atlas/84
|
- url: https://mydomain.vrcboard.app/atlas/83
|
||||||
- url: http://mydomain.vrcboard.app/atlas/85
|
- url: https://mydomain.vrcboard.app/atlas/84
|
||||||
- url: http://mydomain.vrcboard.app/atlas/86
|
- url: https://mydomain.vrcboard.app/atlas/85
|
||||||
- url: http://mydomain.vrcboard.app/atlas/87
|
- url: https://mydomain.vrcboard.app/atlas/86
|
||||||
- url: http://mydomain.vrcboard.app/atlas/88
|
- url: https://mydomain.vrcboard.app/atlas/87
|
||||||
- url: http://mydomain.vrcboard.app/atlas/89
|
- url: https://mydomain.vrcboard.app/atlas/88
|
||||||
- url: http://mydomain.vrcboard.app/atlas/90
|
- url: https://mydomain.vrcboard.app/atlas/89
|
||||||
- url: http://mydomain.vrcboard.app/atlas/91
|
- url: https://mydomain.vrcboard.app/atlas/90
|
||||||
- url: http://mydomain.vrcboard.app/atlas/92
|
- url: https://mydomain.vrcboard.app/atlas/91
|
||||||
- url: http://mydomain.vrcboard.app/atlas/93
|
- url: https://mydomain.vrcboard.app/atlas/92
|
||||||
- url: http://mydomain.vrcboard.app/atlas/94
|
- url: https://mydomain.vrcboard.app/atlas/93
|
||||||
- url: http://mydomain.vrcboard.app/atlas/95
|
- url: https://mydomain.vrcboard.app/atlas/94
|
||||||
- url: http://mydomain.vrcboard.app/atlas/96
|
- url: https://mydomain.vrcboard.app/atlas/95
|
||||||
- url: http://mydomain.vrcboard.app/atlas/97
|
- url: https://mydomain.vrcboard.app/atlas/96
|
||||||
- url: http://mydomain.vrcboard.app/atlas/98
|
- url: https://mydomain.vrcboard.app/atlas/97
|
||||||
- url: http://mydomain.vrcboard.app/atlas/99
|
- url: https://mydomain.vrcboard.app/atlas/98
|
||||||
customModuleUrls: []
|
- url: https://mydomain.vrcboard.app/atlas/99
|
||||||
customModuleEnabled:
|
_proxyAtlasUrls:
|
||||||
atlasInfoUrl:
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image0.png
|
||||||
url: http://mydomain.vrcboard.app/api/data/v1/atlas
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image1.png
|
||||||
supporterInfoUrl:
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image2.png
|
||||||
url: http://mydomain.vrcboard.app/api/data/v1/supporters
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image3.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image4.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image5.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image6.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image7.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image8.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image9.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image10.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image11.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image12.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image13.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image14.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image15.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image16.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image17.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image18.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image19.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image20.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image21.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image22.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image23.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image24.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image25.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image26.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image27.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image28.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image29.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image30.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image31.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image32.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image33.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image34.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image35.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image36.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image37.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image38.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image39.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image40.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image41.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image42.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image43.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image44.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image45.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image46.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image47.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image48.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image49.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image50.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image51.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image52.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image53.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image54.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image55.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image56.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image57.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image58.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image59.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image60.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image61.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image62.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image63.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image64.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image65.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image66.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image67.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image68.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image69.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image70.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image71.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image72.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image73.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image74.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image75.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image76.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image77.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image78.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image79.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image80.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image81.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image82.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image83.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image84.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image85.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image86.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image87.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image88.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image89.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image90.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image91.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image92.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image93.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image94.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image95.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image96.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image97.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image98.png
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/atlas/image99.png
|
||||||
|
_sourceAtlasInfoUrl:
|
||||||
|
url: https://mydomain.vrcboard.app/api/data/v1/atlas
|
||||||
|
_proxyAtlasInfoUrl:
|
||||||
|
url: https://raw.githubusercontent.com///refs/heads/main/atlas.json
|
||||||
|
_sourceCustomModuleUrls:
|
||||||
|
- url: https://mydomain.vrcboard.app/api/data/v1/barmanager
|
||||||
|
- url:
|
||||||
|
- url:
|
||||||
|
_proxyCustomModuleUrls:
|
||||||
|
- url: https://raw.githubusercontent.com///refs/heads/main/custom_modules/barmanager
|
||||||
|
- url:
|
||||||
|
- url:
|
||||||
|
_sourceSupporterInfoUrl:
|
||||||
|
url: https://mydomain.vrcboard.app/api/data/v1/supporters
|
||||||
|
_proxySupporterInfoUrl:
|
||||||
|
url: https://raw.githubusercontent.com///refs/heads/main/supporters.json
|
||||||
|
customModuleEnabled: 000000
|
||||||
imageIdDownloadQueue: []
|
imageIdDownloadQueue: []
|
||||||
--- !u!114 &1195327852248355995
|
--- !u!114 &1195327852248355995
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
serializationData:
|
serializationData:
|
||||||
SerializedFormat: 0
|
SerializedFormat: 2
|
||||||
SerializedBytes:
|
SerializedBytes:
|
||||||
ReferencedUnityObjects: []
|
ReferencedUnityObjects: []
|
||||||
SerializedBytesString:
|
SerializedBytesString:
|
||||||
@@ -138,7 +138,7 @@ MonoBehaviour:
|
|||||||
AllowCollisionOwnershipTransfer: 0
|
AllowCollisionOwnershipTransfer: 0
|
||||||
Reliable: 0
|
Reliable: 0
|
||||||
_syncMethod: 1
|
_syncMethod: 1
|
||||||
serializedProgramAsset: {fileID: 11400000, guid: 7111a5f4b78f7a94fb3d6ae9aef3b9d4,
|
serializedProgramAsset: {fileID: 11400000, guid: dfe93a97c46c4cf4c95cfe80dcaa0d3e,
|
||||||
type: 2}
|
type: 2}
|
||||||
programSource: {fileID: 11400000, guid: 5ca3673014ba8e84cbd28b03627eac47, type: 2}
|
programSource: {fileID: 11400000, guid: 5ca3673014ba8e84cbd28b03627eac47, type: 2}
|
||||||
serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF
|
serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgEAAAAAAAAAAi8CAAAAAUkAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAGAAMQBbAFsAUwB5AHMAdABlAG0ALgBJAG4AdAAzADIALAAgAG0AcwBjAG8AcgBsAGkAYgBdAF0ALAAgAFYAUgBDAC4AVQBkAG8AbgAuAEMAbwBtAG0AbwBuAAIAAAAGAgAAAAAAAAAnAQQAAAB0AHkAcABlAAEXAAAAUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwAsACAAbQBzAGMAbwByAGwAaQBiACcBCgAAAFMAeQBtAGIAbwBsAE4AYQBtAGUAAR8AAABfAF8AXwBVAGQAbwBuAFMAaABhAHIAcABCAGUAaABhAHYAaQBvAHUAcgBWAGUAcgBzAGkAbwBuAF8AXwBfACcBBAAAAHQAeQBwAGUAARYAAABTAHkAcwB0AGUAbQAuAEkAbgB0ADMAMgAsACAAbQBzAGMAbwByAGwAaQBiABcBBQAAAFYAYQBsAHUAZQACAAAABwUHBQcF
|
||||||
|
|||||||
@@ -20,12 +20,14 @@ namespace VRCBoard.Components
|
|||||||
public abstract class VRCBoardBaseComponent : UdonSharpBehaviour
|
public abstract class VRCBoardBaseComponent : UdonSharpBehaviour
|
||||||
{
|
{
|
||||||
[HideInInspector] public VRCBoardManager manager;
|
[HideInInspector] public VRCBoardManager manager;
|
||||||
|
protected virtual void OnRegister() {}
|
||||||
|
protected virtual void OnInitialize() {}
|
||||||
|
protected virtual void OnSupporterDataUpdate() {}
|
||||||
|
protected virtual void OnImageDataUpdate() {}
|
||||||
|
|
||||||
protected abstract void OnRegister();
|
protected virtual void OnImageLoaded() {}
|
||||||
protected abstract void OnInitialize();
|
|
||||||
protected abstract void OnSupporterDataUpdate();
|
protected virtual void OnCustomModuleUpdate(int inputModuleIndex, DataDictionary data) {}
|
||||||
protected abstract void OnImageDataUpdate();
|
|
||||||
protected abstract void OnImageLoaded();
|
|
||||||
|
|
||||||
protected internal void _Register(VRCBoardManager _manager)
|
protected internal void _Register(VRCBoardManager _manager)
|
||||||
{
|
{
|
||||||
@@ -68,7 +70,7 @@ namespace VRCBoard.Components
|
|||||||
|
|
||||||
protected internal void _OnCustomModuleUpdate(int moduleIndex, DataDictionary data)
|
protected internal void _OnCustomModuleUpdate(int moduleIndex, DataDictionary data)
|
||||||
{
|
{
|
||||||
Debug.Log("Custom module update");
|
OnCustomModuleUpdate(moduleIndex, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected internal void _OnAtlasImageLoaded(int atlasIndex = -1)
|
protected internal void _OnAtlasImageLoaded(int atlasIndex = -1)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
||||||
m_Name: VRCBoardImage
|
m_Name: VRCBoardImage
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
serializedUdonProgramAsset: {fileID: 11400000, guid: 19ae0697d87c22c40b5eceb361997922,
|
serializedUdonProgramAsset: {fileID: 11400000, guid: f83f88ce349d298438a783df6b33c10f,
|
||||||
type: 2}
|
type: 2}
|
||||||
udonAssembly:
|
udonAssembly:
|
||||||
assemblyError:
|
assemblyError:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using VRC.SDK3.Data;
|
|||||||
|
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using VRC.SDKBase;
|
using VRC.SDKBase;
|
||||||
|
using VRC.Udon.Common.Enums;
|
||||||
|
|
||||||
namespace VRCBoard.Components
|
namespace VRCBoard.Components
|
||||||
{
|
{
|
||||||
@@ -44,12 +45,6 @@ namespace VRCBoard.Components
|
|||||||
|
|
||||||
if (imageIds.Length == 0) return;
|
if (imageIds.Length == 0) return;
|
||||||
_uploaderId = GetUploader(imageIds[0]);
|
_uploaderId = GetUploader(imageIds[0]);
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(_uploaderId))
|
|
||||||
{
|
|
||||||
Debug.LogWarning("Failed to get uploader ID");
|
|
||||||
//return;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < imageIds.Length; i++)
|
for (int i = 0; i < imageIds.Length; i++)
|
||||||
{
|
{
|
||||||
string imageId = imageIds[i];
|
string imageId = imageIds[i];
|
||||||
@@ -73,13 +68,8 @@ namespace VRCBoard.Components
|
|||||||
TryGetUploader();
|
TryGetUploader();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnImageLoaded()
|
public void _ApplyImageToMaterial()
|
||||||
{
|
{
|
||||||
//Debug.Log("Image loaded VRCBoardImage");
|
|
||||||
|
|
||||||
|
|
||||||
//bool textureSuccess = GetImageAtlasTexture(albedoImageId, _uploaderId, out Texture2D texture, out int atlasPosition, out int atlasSize, out string type1);
|
|
||||||
|
|
||||||
MaterialPropertyBlock propertyBlock = new MaterialPropertyBlock();
|
MaterialPropertyBlock propertyBlock = new MaterialPropertyBlock();
|
||||||
|
|
||||||
for (int i = 0; i < imageIds.Length; i++)
|
for (int i = 0; i < imageIds.Length; i++)
|
||||||
@@ -102,6 +92,11 @@ namespace VRCBoard.Components
|
|||||||
|
|
||||||
if (_renderer) _renderer.SetPropertyBlock(propertyBlock,materialIndex);
|
if (_renderer) _renderer.SetPropertyBlock(propertyBlock,materialIndex);
|
||||||
}
|
}
|
||||||
|
protected override void OnImageLoaded()
|
||||||
|
{
|
||||||
|
if (manager == null) return;
|
||||||
|
SendCustomEventDelayedFrames(nameof(_ApplyImageToMaterial), manager.waitIndex++, EventTiming.LateUpdate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#if UNITY_EDITOR && !COMPILER_UDONSHARP
|
#if UNITY_EDITOR && !COMPILER_UDONSHARP
|
||||||
[CustomEditor(typeof(VRCBoardImage), true)]
|
[CustomEditor(typeof(VRCBoardImage), true)]
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace VRCBoard.Components
|
|||||||
GetImageAtlasTexture(imageId, null, out Texture2D albedoTexture, out int albedoAtlasPosition, out int albedoAtlasSize, out string albedoType);
|
GetImageAtlasTexture(imageId, null, out Texture2D albedoTexture, out int albedoAtlasPosition, out int albedoAtlasSize, out string albedoType);
|
||||||
if (albedoType == null)
|
if (albedoType == null)
|
||||||
{
|
{
|
||||||
Debug.LogError("Failed to get image type for albedo image");
|
//Debug.LogError("Failed to get image type for albedo image");
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
string _mainType = albedoType;
|
string _mainType = albedoType;
|
||||||
@@ -30,26 +30,14 @@ namespace VRCBoard.Components
|
|||||||
}
|
}
|
||||||
else if (_mainType == "global")
|
else if (_mainType == "global")
|
||||||
{
|
{
|
||||||
uploaderId = null;
|
uploaderId = "null";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DataDictionary ownerInfo = manager.GetSupporterDataFromPlayer(manager.InstanceOwner);
|
uploaderId = manager._VRCBoardIdFromName(manager.InstanceOwner);
|
||||||
if (ownerInfo == null)
|
|
||||||
{
|
|
||||||
Debug.LogWarning("Failed to get owner info, user has likely not linked their account.");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
bool ownerSuccess = ownerInfo.TryGetValue("id", out DataToken ownerToken);
|
|
||||||
if (!ownerSuccess || ownerToken.TokenType != TokenType.String)
|
|
||||||
{
|
|
||||||
Debug.LogWarning("Failed to get owner ID from owner info.");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
uploaderId = ownerToken.String;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log("image uploader: " + uploaderId);
|
//Debug.Log("image uploader: " + uploaderId);
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
uploaderId = uploaderIdOverride;
|
uploaderId = uploaderIdOverride;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
||||||
m_Name: VRCBoardImageBasic
|
m_Name: VRCBoardImageBasic
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
serializedUdonProgramAsset: {fileID: 11400000, guid: 7111a5f4b78f7a94fb3d6ae9aef3b9d4,
|
serializedUdonProgramAsset: {fileID: 11400000, guid: dfe93a97c46c4cf4c95cfe80dcaa0d3e,
|
||||||
type: 2}
|
type: 2}
|
||||||
udonAssembly:
|
udonAssembly:
|
||||||
assemblyError:
|
assemblyError:
|
||||||
|
|||||||
@@ -54,11 +54,6 @@ namespace VRCBoard.Components
|
|||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(_uploaderId)) return;
|
if (!string.IsNullOrEmpty(_uploaderId)) return;
|
||||||
_uploaderId = GetUploader(albedoImageId);
|
_uploaderId = GetUploader(albedoImageId);
|
||||||
if (string.IsNullOrEmpty(_uploaderId))
|
|
||||||
{
|
|
||||||
Debug.LogWarning("Failed to get uploader ID");
|
|
||||||
//return;
|
|
||||||
}
|
|
||||||
RequestImageLoad(albedoImageId, _uploaderId);
|
RequestImageLoad(albedoImageId, _uploaderId);
|
||||||
RequestImageLoad(emissionImageId, _uploaderId);
|
RequestImageLoad(emissionImageId, _uploaderId);
|
||||||
RequestImageLoad(normalImageId, _uploaderId);
|
RequestImageLoad(normalImageId, _uploaderId);
|
||||||
@@ -79,7 +74,7 @@ namespace VRCBoard.Components
|
|||||||
|
|
||||||
protected override void OnImageLoaded()
|
protected override void OnImageLoaded()
|
||||||
{
|
{
|
||||||
Debug.Log("Image loaded VRCBoardImage");
|
//Debug.Log("Image loaded VRCBoardImage");
|
||||||
|
|
||||||
Texture2D albedoTexture;
|
Texture2D albedoTexture;
|
||||||
int albedoAtlasPosition;
|
int albedoAtlasPosition;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
||||||
m_Name: VRCBoardOverheadIcons
|
m_Name: VRCBoardOverheadIcons
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
serializedUdonProgramAsset: {fileID: 11400000, guid: 9b52c5e5b2955fa468b15a65e066455d,
|
serializedUdonProgramAsset: {fileID: 11400000, guid: 4d130d8e384312146b0f690571220be5,
|
||||||
type: 2}
|
type: 2}
|
||||||
udonAssembly:
|
udonAssembly:
|
||||||
assemblyError:
|
assemblyError:
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ namespace VRCBoard.Components
|
|||||||
{
|
{
|
||||||
// for each entry in string[] config get every fifth element
|
// for each entry in string[] config get every fifth element
|
||||||
// if the first element is equal to the node, return the config
|
// if the first element is equal to the node, return the config
|
||||||
Debug.Log("Getting config from node " + node);
|
//Debug.Log("Getting config from node " + node);
|
||||||
foundConfig = null;
|
foundConfig = null;
|
||||||
foundIndex = -1;
|
foundIndex = -1;
|
||||||
string[] split = node.Split('.');
|
string[] split = node.Split('.');
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3}
|
||||||
m_Name: VRCBoardSupporterBoardTMP
|
m_Name: VRCBoardSupporterBoardTMP
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
serializedUdonProgramAsset: {fileID: 11400000, guid: cb7ba44e9b1599548a81a4691eb88bb4,
|
serializedUdonProgramAsset: {fileID: 11400000, guid: e758930ddabc47d499d718189a2787b5,
|
||||||
type: 2}
|
type: 2}
|
||||||
udonAssembly:
|
udonAssembly:
|
||||||
assemblyError:
|
assemblyError:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -25,8 +25,14 @@ namespace VRCBoard
|
|||||||
Tag,
|
Tag,
|
||||||
Image
|
Image
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
|
||||||
public class VRCBoardManager : UdonSharpBehaviour
|
public class VRCBoardManager : UdonSharpBehaviour
|
||||||
{
|
{
|
||||||
|
public string GIT_USERNAME = "";
|
||||||
|
public string GIT_REPO = "";
|
||||||
|
public string GIT_BASE_URL => "https://raw.githubusercontent.com/" + GIT_USERNAME + "/" + GIT_REPO + "/refs/heads/main/";
|
||||||
|
|
||||||
public bool debugMode = true;
|
public bool debugMode = true;
|
||||||
|
|
||||||
public string vrcBoardDomain = "mydomain.vrcboard.app";
|
public string vrcBoardDomain = "mydomain.vrcboard.app";
|
||||||
@@ -35,26 +41,49 @@ namespace VRCBoard
|
|||||||
public int atlasUrlCount = 100;
|
public int atlasUrlCount = 100;
|
||||||
|
|
||||||
public VRCBoardBaseComponent[] vrcBoardComponents;
|
public VRCBoardBaseComponent[] vrcBoardComponents;
|
||||||
|
public byte waitIndex = 0;
|
||||||
|
|
||||||
|
private bool _useProxyUrls = false;
|
||||||
|
|
||||||
|
#region URLS
|
||||||
|
|
||||||
|
public VRCUrl[] _sourceAtlasUrls;
|
||||||
|
public VRCUrl[] _proxyAtlasUrls;
|
||||||
|
|
||||||
|
public VRCUrl _sourceAtlasInfoUrl;
|
||||||
|
public VRCUrl _proxyAtlasInfoUrl;
|
||||||
|
|
||||||
|
public VRCUrl[] _sourceCustomModuleUrls;
|
||||||
|
public VRCUrl[] _proxyCustomModuleUrls;
|
||||||
|
|
||||||
|
public VRCUrl _sourceSupporterInfoUrl;
|
||||||
|
public VRCUrl _proxySupporterInfoUrl;
|
||||||
|
|
||||||
|
public VRCUrl[] customModuleUrls => _useProxyUrls ? _proxyCustomModuleUrls : _sourceCustomModuleUrls;
|
||||||
|
public VRCUrl supporterInfoUrl => _useProxyUrls ? _proxySupporterInfoUrl : _sourceSupporterInfoUrl;
|
||||||
|
public VRCUrl atlasInfoUrl => _useProxyUrls ? _proxyAtlasInfoUrl : _sourceAtlasInfoUrl;
|
||||||
|
public VRCUrl[] atlasUrls => _useProxyUrls ? _proxyAtlasUrls : _sourceAtlasUrls;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
public VRCUrl[] atlasUrls;
|
|
||||||
private VRCImageDownloader[] _imageDownloaders;
|
private VRCImageDownloader[] _imageDownloaders;
|
||||||
private Texture2D[] _downloadedAtlasTextures;
|
private Texture2D[] _downloadedAtlasTextures;
|
||||||
private float[] _atlasDownloadTimes;
|
private float[] _atlasDownloadTimes;
|
||||||
|
|
||||||
public VRCUrl[] customModuleUrls;
|
|
||||||
public bool[] customModuleEnabled;
|
public bool[] customModuleEnabled;
|
||||||
|
|
||||||
public VRCUrl atlasInfoUrl;
|
|
||||||
private DataDictionary _atlasInfo;
|
private DataDictionary _atlasInfo;
|
||||||
|
|
||||||
public VRCUrl supporterInfoUrl;
|
|
||||||
private DataDictionary _supporterInfo;
|
private DataDictionary _supporterInfo;
|
||||||
private DataDictionary _supporterInfoVrcLookup;
|
private DataDictionary _supporterInfoVrcLookup;
|
||||||
private DataList _supporterList;
|
private DataList _supporterList;
|
||||||
private DataList _perkNodes;
|
private DataList _perkNodes;
|
||||||
|
|
||||||
|
|
||||||
[UdonSynced, FieldChangeCallback(nameof(instanceOwnerOverride))]
|
|
||||||
private string _instanceOwnerOverride = "";
|
private string _instanceOwnerOverride = "";
|
||||||
|
|
||||||
private string instanceOwnerOverride
|
private string instanceOwnerOverride
|
||||||
@@ -68,31 +97,51 @@ namespace VRCBoard
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[UdonSynced, FieldChangeCallback(nameof(InstanceOwner))] private string _instanceOwner;
|
[UdonSynced, FieldChangeCallback(nameof(InstanceOwner))]
|
||||||
|
private string _instanceOwner;
|
||||||
|
|
||||||
public string[] imageIdDownloadQueue = new string[0];
|
public string[] imageIdDownloadQueue = new string[0];
|
||||||
|
public bool automaticInstanceOwner = true;
|
||||||
|
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public void SetInstanceOwner(string owner)
|
public void SetInstanceOwner(string owner)
|
||||||
{
|
{
|
||||||
instanceOwnerOverride = owner;
|
instanceOwnerOverride = owner;
|
||||||
Networking.SetOwner(Networking.LocalPlayer, gameObject);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string InstanceOwner
|
public string InstanceOwner
|
||||||
{
|
{
|
||||||
get {
|
get {
|
||||||
if (!string.IsNullOrWhiteSpace(instanceOwnerOverride)) return instanceOwnerOverride;
|
if (!string.IsNullOrWhiteSpace(instanceOwnerOverride)) return instanceOwnerOverride;
|
||||||
return _instanceOwner;
|
if (automaticInstanceOwner)
|
||||||
|
{
|
||||||
|
return _instanceOwner;
|
||||||
|
}
|
||||||
|
return String.Empty;
|
||||||
}
|
}
|
||||||
private set
|
private set
|
||||||
{
|
{
|
||||||
_instanceOwner = value;
|
_instanceOwner = value;
|
||||||
Networking.SetOwner(Networking.LocalPlayer, gameObject);
|
|
||||||
RequestSerialization();
|
|
||||||
Debug.Log("Instance owner set to " + value);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string _VRCBoardIdFromName(string name)
|
||||||
|
{
|
||||||
|
DataDictionary ownerInfo = GetSupporterDataFromPlayer(name);
|
||||||
|
if (ownerInfo == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("Failed to get user info, user has likely not linked their account. username: " + name);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
bool ownerSuccess = ownerInfo.TryGetValue("id", out DataToken ownerToken);
|
||||||
|
if (!ownerSuccess || ownerToken.TokenType != TokenType.String)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("Failed to get vrcboard ID from displayname");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return ownerToken.String;
|
||||||
|
}
|
||||||
|
|
||||||
private void RemoveNullComponents()
|
private void RemoveNullComponents()
|
||||||
{
|
{
|
||||||
int nullCount = 0;
|
int nullCount = 0;
|
||||||
@@ -198,6 +247,7 @@ namespace VRCBoard
|
|||||||
private VRCUrl[] _currentlyDownloadingUrls = new VRCUrl[0];
|
private VRCUrl[] _currentlyDownloadingUrls = new VRCUrl[0];
|
||||||
private void RequestUrlLoad(VRCUrl url)
|
private void RequestUrlLoad(VRCUrl url)
|
||||||
{
|
{
|
||||||
|
Debug.Log("[VRCBOARD] Laoding URL " + url.Get());
|
||||||
string urlStr = url.Get();
|
string urlStr = url.Get();
|
||||||
for (int i = 0; i < _currentlyDownloadingUrls.Length; i++)
|
for (int i = 0; i < _currentlyDownloadingUrls.Length; i++)
|
||||||
{
|
{
|
||||||
@@ -281,7 +331,7 @@ namespace VRCBoard
|
|||||||
DataDictionary imageInfo = _GetImageIdInfo(imageId);
|
DataDictionary imageInfo = _GetImageIdInfo(imageId);
|
||||||
if (imageInfo == null)
|
if (imageInfo == null)
|
||||||
{
|
{
|
||||||
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " not found!");
|
//Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " not found!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -304,6 +354,7 @@ namespace VRCBoard
|
|||||||
int uploadCount = uploads.Count;
|
int uploadCount = uploads.Count;
|
||||||
if (uploadCount == 0)
|
if (uploadCount == 0)
|
||||||
{
|
{
|
||||||
|
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " has no uploads.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// find index of the uploader
|
// find index of the uploader
|
||||||
@@ -333,16 +384,20 @@ namespace VRCBoard
|
|||||||
//Debug.Log("Uploader index: " + uploaderIndex);
|
//Debug.Log("Uploader index: " + uploaderIndex);
|
||||||
if (uploaderIndex == -1)
|
if (uploaderIndex == -1)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " uploader not found. uploaderIndex==-1");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
DataDictionary uploadInfo = uploads[uploaderIndex].DataDictionary;
|
DataDictionary uploadInfo = uploads[uploaderIndex].DataDictionary;
|
||||||
if (uploadInfo == null)
|
if (uploadInfo == null)
|
||||||
{
|
{
|
||||||
|
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " uploadInfo is null.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool atlasIndexSuccess = uploadInfo.TryGetValue("i", out DataToken atlasIndexToken);
|
bool atlasIndexSuccess = uploadInfo.TryGetValue("i", out DataToken atlasIndexToken);
|
||||||
if (!atlasIndexSuccess || atlasIndexToken.TokenType != TokenType.Double)
|
if (!atlasIndexSuccess || atlasIndexToken.TokenType != TokenType.Double)
|
||||||
{
|
{
|
||||||
|
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " atlasIndex is not a valid number.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,6 +406,7 @@ namespace VRCBoard
|
|||||||
bool positionSuccess = uploadInfo.TryGetValue("p", out DataToken positionToken);
|
bool positionSuccess = uploadInfo.TryGetValue("p", out DataToken positionToken);
|
||||||
if (!positionSuccess || positionToken.TokenType != TokenType.Double)
|
if (!positionSuccess || positionToken.TokenType != TokenType.Double)
|
||||||
{
|
{
|
||||||
|
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " position is not a valid number.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
texture = _downloadedAtlasTextures[atlasIndex];
|
texture = _downloadedAtlasTextures[atlasIndex];
|
||||||
@@ -359,11 +415,19 @@ namespace VRCBoard
|
|||||||
bool hashSuccess = uploadInfo.TryGetValue("h", out DataToken hashToken);
|
bool hashSuccess = uploadInfo.TryGetValue("h", out DataToken hashToken);
|
||||||
if (!hashSuccess || hashToken.TokenType != TokenType.String)
|
if (!hashSuccess || hashToken.TokenType != TokenType.String)
|
||||||
{
|
{
|
||||||
|
Debug.LogWarning("[_GetImageAtlasTexture] " + imageId + " hash is not a valid string.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
hash = hashToken.String;
|
hash = hashToken.String;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void _RequestCustomModuleUpdate(int moduleIndex)
|
||||||
|
{
|
||||||
|
if (moduleIndex < 0 || moduleIndex >= customModuleUrls.Length) return;
|
||||||
|
VRCUrl url = customModuleUrls[moduleIndex];
|
||||||
|
RequestUrlLoad(url);
|
||||||
|
}
|
||||||
public void _RequestImageLoad(string imageId, string uploader, VRCBoardBaseComponent component)
|
public void _RequestImageLoad(string imageId, string uploader, VRCBoardBaseComponent component)
|
||||||
{
|
{
|
||||||
if (uploader == null) uploader = "null";
|
if (uploader == null) uploader = "null";
|
||||||
@@ -375,6 +439,7 @@ namespace VRCBoard
|
|||||||
}
|
}
|
||||||
private void TryDownloadImageId(string combinedImageId)
|
private void TryDownloadImageId(string combinedImageId)
|
||||||
{
|
{
|
||||||
|
Debug.Log("[VRCBoard] Trying to download imageid " + combinedImageId);
|
||||||
string[] split = combinedImageId.Split(':');
|
string[] split = combinedImageId.Split(':');
|
||||||
if (split.Length != 2) return;
|
if (split.Length != 2) return;
|
||||||
string imageId = split[0];
|
string imageId = split[0];
|
||||||
@@ -382,10 +447,16 @@ namespace VRCBoard
|
|||||||
if (uploader == "null") uploader = null;
|
if (uploader == "null") uploader = null;
|
||||||
bool success = _GetImageAtlasTexture(imageId, uploader, out int atlasIndex, out Texture2D texture,
|
bool success = _GetImageAtlasTexture(imageId, uploader, out int atlasIndex, out Texture2D texture,
|
||||||
out int position, out int size, out string type, out string hash);
|
out int position, out int size, out string type, out string hash);
|
||||||
//Debug.Log("Try download image " + combinedImageId + " success: " + success);
|
Debug.Log("Try download image " + combinedImageId + " success: " + success);
|
||||||
if (!success) return;
|
if (!success) return;
|
||||||
DownloadAtlas(atlasIndex);
|
|
||||||
|
|
||||||
|
/*if ( GetFromTextureCache(hash) != null)
|
||||||
|
{
|
||||||
|
Debug.Log("[VRCBoard] Image found in texture cache " + combinedImageId);
|
||||||
|
return;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
DownloadAtlas(atlasIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnSupporterInfoDownload(string data)
|
private void OnSupporterInfoDownload(string data)
|
||||||
@@ -535,7 +606,7 @@ namespace VRCBoard
|
|||||||
|
|
||||||
private void OnAtlasInfoDownload(string data)
|
private void OnAtlasInfoDownload(string data)
|
||||||
{
|
{
|
||||||
//Debug.Log("Atlas info download success");
|
Debug.Log("[VRCBoard] Atlas info download success");
|
||||||
if (VRCJson.TryDeserializeFromJson(data, out DataToken result))
|
if (VRCJson.TryDeserializeFromJson(data, out DataToken result))
|
||||||
{
|
{
|
||||||
if (result.TokenType != TokenType.DataDictionary) return;
|
if (result.TokenType != TokenType.DataDictionary) return;
|
||||||
@@ -569,7 +640,7 @@ namespace VRCBoard
|
|||||||
|
|
||||||
private void DownloadAtlas(int index)
|
private void DownloadAtlas(int index)
|
||||||
{
|
{
|
||||||
//Debug.Log("Downloading atlas " + index);
|
Debug.Log("Downloading atlas " + index);
|
||||||
if (index < 0 || index >= atlasUrls.Length) return;
|
if (index < 0 || index >= atlasUrls.Length) return;
|
||||||
VRCUrl url = GetAtlasUrlFromIndex(index);
|
VRCUrl url = GetAtlasUrlFromIndex(index);
|
||||||
VRCImageDownloader imageDownloader = _imageDownloaders[index];
|
VRCImageDownloader imageDownloader = _imageDownloaders[index];
|
||||||
@@ -664,74 +735,100 @@ namespace VRCBoard
|
|||||||
textureCacheCurrentSize = newSize;
|
textureCacheCurrentSize = newSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
[PublicAPI]
|
public void BilinearScale(Texture2D tex, int newWidth, int newHeight)
|
||||||
public Texture2D GetTexture2D(string uploader, string imageId, out string imageHash)
|
|
||||||
{
|
{
|
||||||
bool success = _GetImageAtlasTexture(imageId, uploader, out int atlasIndex, out Texture2D texture,
|
Color[] newPixels = new Color[newWidth * newHeight];
|
||||||
out int position, out int size, out string type, out string hash);
|
|
||||||
|
Color[] originalPixels = tex.GetPixels();
|
||||||
|
int origWidth = tex.width;
|
||||||
|
int origHeight = tex.height;
|
||||||
|
|
||||||
|
float ratioX = (float)(origWidth - 1) / newWidth;
|
||||||
|
float ratioY = (float)(origHeight - 1) / newHeight;
|
||||||
|
|
||||||
|
for (int y = 0; y < newHeight; y++)
|
||||||
|
{
|
||||||
|
float sy = y * ratioY;
|
||||||
|
int yFloor = Mathf.FloorToInt(sy);
|
||||||
|
int yCeil = Mathf.Min(yFloor + 1, origHeight - 1);
|
||||||
|
float fy = sy - yFloor;
|
||||||
|
|
||||||
|
for (int x = 0; x < newWidth; x++)
|
||||||
|
{
|
||||||
|
float sx = x * ratioX;
|
||||||
|
int xFloor = Mathf.FloorToInt(sx);
|
||||||
|
int xCeil = Mathf.Min(xFloor + 1, origWidth - 1);
|
||||||
|
float fx = sx - xFloor;
|
||||||
|
|
||||||
|
// Manual bilinear interpolation
|
||||||
|
Color c00 = originalPixels[yFloor * origWidth + xFloor];
|
||||||
|
Color c10 = originalPixels[yFloor * origWidth + xCeil];
|
||||||
|
Color c01 = originalPixels[yCeil * origWidth + xFloor];
|
||||||
|
Color c11 = originalPixels[yCeil * origWidth + xCeil];
|
||||||
|
|
||||||
|
Color interpolated =
|
||||||
|
c00 * (1 - fx) * (1 - fy) +
|
||||||
|
c10 * fx * (1 - fy) +
|
||||||
|
c01 * (1 - fx) * fy +
|
||||||
|
c11 * fx * fy;
|
||||||
|
|
||||||
|
newPixels[y * newWidth + x] = interpolated;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tex.Reinitialize(newWidth, newHeight);
|
||||||
|
tex.SetPixels(newPixels);
|
||||||
|
tex.Apply();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[PublicAPI]
|
||||||
|
public Texture2D GetTexture2D(string uploader, string imageId, out string imageHash, bool bilinearScaling = false)
|
||||||
|
{
|
||||||
|
imageHash = null;
|
||||||
|
|
||||||
|
if (!_GetImageAtlasTexture(imageId, uploader, out int atlasIndex, out Texture2D texture,
|
||||||
|
out int position, out int size, out string type, out string hash) || atlasIndex == -1 || texture == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("[VRCBoard] [GetTexture2D] Failed to get texture for " + uploader);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
imageHash = hash;
|
imageHash = hash;
|
||||||
|
|
||||||
Texture2D cachedTexture = GetFromTextureCache(hash);
|
Texture2D cachedTexture = GetFromTextureCache(hash);
|
||||||
if (cachedTexture != null) return cachedTexture;
|
if (cachedTexture != null) return cachedTexture;
|
||||||
|
|
||||||
if (!success || atlasIndex == -1)
|
int blockSize = texture.width / size;
|
||||||
{
|
|
||||||
Debug.LogWarning("[VRCBoard] [GetTexture2D] Failed to get texture for " + uploader);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (texture == null)
|
int xIndex = position % size;
|
||||||
{
|
int yIndex = size - 1 - (position / size);
|
||||||
Debug.LogWarning("[VRCBoard] [GetTexture2D] Failed to get texture for " + uploader);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
int blockSize = (int)Mathf.Floor((float)(texture.width) / (float)(size));
|
int startX = xIndex * blockSize;
|
||||||
|
int startY = yIndex * blockSize;
|
||||||
|
|
||||||
|
Color[] pixels = texture.GetPixels(startX, startY, blockSize, blockSize);
|
||||||
|
|
||||||
float startX = position % size;
|
// Instead of bilinear sampling, scale using Unity’s built-in Resize method.
|
||||||
float startY = size - (int)Mathf.Floor((float)position / (float)size) - 1;
|
Texture2D newTexture = new Texture2D(blockSize, blockSize, TextureFormat.RGBA32, false);
|
||||||
|
newTexture.SetPixels(pixels);
|
||||||
|
|
||||||
startX = startX / size;
|
if (bilinearScaling) BilinearScale(newTexture, 512, 512);
|
||||||
startY = startY / size;
|
|
||||||
|
|
||||||
//Debug.Log("[VRCBoard] texture startX:" + startX + ", startY:" + startY);
|
newTexture.wrapMode = TextureWrapMode.Repeat;
|
||||||
|
|
||||||
int textureSize = 1024;
|
|
||||||
|
|
||||||
Texture2D newTexture = new Texture2D (textureSize, textureSize);
|
|
||||||
|
|
||||||
|
|
||||||
Color[] stretchedPixels = new Color[textureSize * textureSize];
|
|
||||||
|
|
||||||
for (int y = 0; y < textureSize; y++)
|
|
||||||
{
|
|
||||||
for (int x = 0; x < textureSize; x++)
|
|
||||||
{
|
|
||||||
// Get the corresponding pixel from the original texture
|
|
||||||
float u = startX + ((float)x / textureSize / size);
|
|
||||||
float v = startY + ((float)y / textureSize / size);
|
|
||||||
|
|
||||||
// Sample the original texture at the calculated UV coordinates
|
|
||||||
Color pixel = texture.GetPixelBilinear(u, v);
|
|
||||||
stretchedPixels[y * textureSize + x] = pixel;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Color[] pixels = texture.GetPixels(startX * blockSize, startY * blockSize, blockSize, blockSize);
|
|
||||||
newTexture.SetPixels(stretchedPixels);
|
|
||||||
newTexture.wrapMode = TextureWrapMode.Clamp;
|
|
||||||
newTexture.filterMode = FilterMode.Trilinear;
|
newTexture.filterMode = FilterMode.Trilinear;
|
||||||
newTexture.anisoLevel = 1;
|
newTexture.anisoLevel = 1;
|
||||||
newTexture.Apply();
|
|
||||||
|
newTexture.Apply(true,true);
|
||||||
|
|
||||||
AddToTextureCache(hash, newTexture);
|
AddToTextureCache(hash, newTexture);
|
||||||
return newTexture;
|
return newTexture;
|
||||||
}
|
}
|
||||||
|
|
||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public Texture2D GetTexture2D(string uploader, string imageId)
|
public Texture2D GetTexture2D(string uploader, string imageId, bool bilinearScaling = false)
|
||||||
{
|
{
|
||||||
return GetTexture2D(uploader, imageId, out string imageHash);
|
return GetTexture2D(uploader, imageId, out string imageHash, bilinearScaling);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnImageLoadError(IVRCImageDownload result)
|
public override void OnImageLoadError(IVRCImageDownload result)
|
||||||
@@ -810,6 +907,7 @@ namespace VRCBoard
|
|||||||
public class VrcBoardManagerEditor : Editor
|
public class VrcBoardManagerEditor : Editor
|
||||||
{
|
{
|
||||||
bool shouldRefreshUrls = true;
|
bool shouldRefreshUrls = true;
|
||||||
|
bool showGitSettings = false;
|
||||||
private void OnEnable()
|
private void OnEnable()
|
||||||
{
|
{
|
||||||
shouldRefreshUrls = true;
|
shouldRefreshUrls = true;
|
||||||
@@ -844,32 +942,52 @@ namespace VRCBoard
|
|||||||
|
|
||||||
string baseUrl = manager.VrcBoardBaseUrl;
|
string baseUrl = manager.VrcBoardBaseUrl;
|
||||||
// update the urls
|
// update the urls
|
||||||
manager.atlasUrls = new VRCUrl[manager.atlasUrlCount];
|
manager._sourceAtlasUrls = new VRCUrl[manager.atlasUrlCount];
|
||||||
|
manager._proxyAtlasUrls = new VRCUrl[manager.atlasUrlCount];
|
||||||
for (int i = 0; i < manager.atlasUrlCount; i++)
|
for (int i = 0; i < manager.atlasUrlCount; i++)
|
||||||
{
|
{
|
||||||
manager.atlasUrls[i] = new VRCUrl(baseUrl + "atlas/" + i);
|
manager._sourceAtlasUrls[i] = new VRCUrl(baseUrl + "atlas/" + i);
|
||||||
|
manager._proxyAtlasUrls[i] = new VRCUrl(manager.GIT_BASE_URL + "atlas/image" + i + ".png");
|
||||||
}
|
}
|
||||||
|
|
||||||
const string apiPath = "api/data/v1/";
|
const string apiPath = "api/data/v1/";
|
||||||
|
|
||||||
bool[] oldEnabled = manager.customModuleEnabled;
|
bool[] oldEnabled = manager.customModuleEnabled;
|
||||||
manager.customModuleUrls = new VRCUrl[3];
|
manager._sourceCustomModuleUrls = new VRCUrl[3];
|
||||||
|
manager._proxyCustomModuleUrls = new VRCUrl[3];
|
||||||
manager.customModuleEnabled = new bool[3];
|
manager.customModuleEnabled = new bool[3];
|
||||||
manager.customModuleUrls[0] = new VRCUrl(baseUrl + apiPath + "barmanager");
|
manager._sourceCustomModuleUrls[0] = new VRCUrl(baseUrl + apiPath + "module/barmanager");
|
||||||
|
manager._proxyCustomModuleUrls[0] = new VRCUrl(manager.GIT_BASE_URL + "custom_modules/barmanager");
|
||||||
|
|
||||||
for (int i = 0; i < oldEnabled.Length; i++)
|
for (int i = 0; i < oldEnabled.Length; i++)
|
||||||
{
|
{
|
||||||
if (i < manager.customModuleEnabled.Length) manager.customModuleEnabled[i] = oldEnabled[i];
|
if (i < manager.customModuleEnabled.Length) manager.customModuleEnabled[i] = oldEnabled[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.atlasInfoUrl = new VRCUrl(baseUrl + apiPath + "atlas");
|
manager._sourceAtlasInfoUrl = new VRCUrl(baseUrl + apiPath + "atlas");
|
||||||
manager.supporterInfoUrl = new VRCUrl(baseUrl + apiPath + "supporters");
|
manager._sourceSupporterInfoUrl = new VRCUrl(baseUrl + apiPath + "supporters");
|
||||||
|
|
||||||
|
manager._proxyAtlasInfoUrl = new VRCUrl(manager.GIT_BASE_URL + "atlas.json");
|
||||||
|
manager._proxySupporterInfoUrl = new VRCUrl(manager.GIT_BASE_URL + "supporters.json");
|
||||||
|
|
||||||
EditorUtility.SetDirty(manager);
|
EditorUtility.SetDirty(manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
float selectedInterval = EditorGUILayout.FloatField("Periodic Update Interval", manager.periodicUpdateInterval);
|
float selectedInterval = EditorGUILayout.FloatField("Periodic Update Interval", manager.periodicUpdateInterval);
|
||||||
manager.periodicUpdateInterval = Mathf.Clamp(selectedInterval, 5f, 600f);
|
if (selectedInterval != manager.periodicUpdateInterval)
|
||||||
|
{
|
||||||
|
manager.periodicUpdateInterval = Mathf.Clamp(selectedInterval, 5f, 600f);
|
||||||
|
EditorUtility.SetDirty(manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool instanceOwner = EditorGUILayout.Toggle("Enable Automatic Instance Owner Detection", manager.automaticInstanceOwner);
|
||||||
|
if (instanceOwner != manager.automaticInstanceOwner)
|
||||||
|
{
|
||||||
|
manager.automaticInstanceOwner = instanceOwner;
|
||||||
|
EditorUtility.SetDirty(manager);
|
||||||
|
}
|
||||||
|
|
||||||
EditorGUILayout.Separator();
|
EditorGUILayout.Separator();
|
||||||
|
|
||||||
SerializedProperty customModuleEnabled = serializedObject.FindProperty("customModuleEnabled");
|
SerializedProperty customModuleEnabled = serializedObject.FindProperty("customModuleEnabled");
|
||||||
@@ -880,6 +998,25 @@ namespace VRCBoard
|
|||||||
customModuleEnabled.GetArrayElementAtIndex(0).boolValue = EditorGUILayout.Popup(customModuleEnabled.GetArrayElementAtIndex(0).boolValue ? 1 : 0, new[] {"Disabled", "Enabled"}) == 1;
|
customModuleEnabled.GetArrayElementAtIndex(0).boolValue = EditorGUILayout.Popup(customModuleEnabled.GetArrayElementAtIndex(0).boolValue ? 1 : 0, new[] {"Disabled", "Enabled"}) == 1;
|
||||||
EditorGUILayout.EndHorizontal();
|
EditorGUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
EditorGUILayout.Separator();
|
||||||
|
|
||||||
|
showGitSettings = EditorGUILayout.Foldout(showGitSettings, "GitHub Settings");
|
||||||
|
if (showGitSettings)
|
||||||
|
{
|
||||||
|
EditorGUILayout.HelpBox("GitHub can be used to host the images on trusted URLs. See more info on the VRCBoard website.", MessageType.Info);
|
||||||
|
string gitUser = EditorGUILayout.TextField("GitHub Username", manager.GIT_USERNAME);
|
||||||
|
string gitRepo = EditorGUILayout.TextField("GitHub Repo", manager.GIT_REPO);
|
||||||
|
//string gitBranch = EditorGUILayout.TextField("GitHub Branch", manager.GIT_BRANCH);
|
||||||
|
bool gitChanged = gitUser != manager.GIT_USERNAME || gitRepo != manager.GIT_REPO; //|| gitBranch != manager.GIT_BRANCH;
|
||||||
|
if (gitChanged)
|
||||||
|
{
|
||||||
|
manager.GIT_USERNAME = gitUser;
|
||||||
|
manager.GIT_REPO = gitRepo;
|
||||||
|
EditorUtility.SetDirty(manager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EditorGUILayout.Separator();
|
EditorGUILayout.Separator();
|
||||||
|
|
||||||
SerializedProperty vrcBoardComponents = serializedObject.FindProperty("vrcBoardComponents");
|
SerializedProperty vrcBoardComponents = serializedObject.FindProperty("vrcBoardComponents");
|
||||||
|
|||||||
Reference in New Issue
Block a user