Skip to content

Commit e5b3f8c

Browse files
committed
fix: classgraph rpc enum values are now correctly set into registration code
1 parent 249620c commit e5b3f8c

File tree

4 files changed

+15
-13
lines changed

4 files changed

+15
-13
lines changed

harness/tests/Spatial.tscn

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[gd_scene load_steps=7 format=3 uid="uid://cnqp52df0ln8e"]
22

3-
[ext_resource type="Script" path="res://scripts/godot/tests/Invocation.gdj" id="1"]
3+
[ext_resource type="Script" path="res://scripts/godot/tests/Invocation.gdj" id="1_u7txe"]
44

55
[sub_resource type="NavigationMesh" id="NavigationMesh_1ex3u"]
66

@@ -13,7 +13,7 @@
1313
[sub_resource type="NavigationMesh" id="NavigationMesh_b12lh"]
1414

1515
[node name="Spatial" type="Node3D" node_paths=PackedStringArray("button")]
16-
script = ExtResource("1")
16+
script = ExtResource("1_u7txe")
1717
button = NodePath("CanvasLayer/Button")
1818
resource_test = SubResource("NavigationMesh_1ex3u")
1919
jvm_id = 319061373

kt/entry-generation/godot-class-graph-symbol-processor/src/main/kotlin/godot/annotation/processor/classgraph/constants/Types.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const val VOID = "void"
3131
const val STRING = "java.lang.String"
3232

3333
const val JVM_OBJECT = "java.lang.Object"
34+
const val KOTLIN_ANY = "kotlin.Any"
3435

3536
const val SET = "java.util.Set"
3637

kt/entry-generation/godot-class-graph-symbol-processor/src/main/kotlin/godot/annotation/processor/classgraph/extensions/AnnotationExtensions.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,27 +119,27 @@ fun AnnotationInfo.mapToGodotAnnotation(parentDeclaration: Any): GodotAnnotation
119119
private fun AnnotationInfo.getRpcMode(): godot.entrygenerator.model.RpcMode {
120120
val rpcModeName = parameterValues.getValue("rpcMode")?.toString()
121121
return when (rpcModeName) {
122-
RpcMode.ANY.name -> godot.entrygenerator.model.RpcMode.ANY
123-
RpcMode.AUTHORITY.name -> godot.entrygenerator.model.RpcMode.AUTHORITY
122+
RpcMode.ANY.fqName -> godot.entrygenerator.model.RpcMode.ANY
123+
RpcMode.AUTHORITY.fqName -> godot.entrygenerator.model.RpcMode.AUTHORITY
124124
else -> godot.entrygenerator.model.RpcMode.DISABLED
125125
}
126126
}
127127

128128
private fun AnnotationInfo.getSyncMode(): godot.entrygenerator.model.Sync {
129129
val syncName = parameterValues.getValue("sync")?.toString()
130130
return when (syncName) {
131-
Sync.SYNC.name -> godot.entrygenerator.model.Sync.SYNC
132-
Sync.NO_SYNC.name -> godot.entrygenerator.model.Sync.NO_SYNC
131+
Sync.SYNC.fqName -> godot.entrygenerator.model.Sync.SYNC
132+
Sync.NO_SYNC.fqName -> godot.entrygenerator.model.Sync.NO_SYNC
133133
else -> godot.entrygenerator.model.Sync.NO_SYNC
134134
}
135135
}
136136

137137
private fun AnnotationInfo.getTransferMode(): godot.entrygenerator.model.TransferMode {
138138
val transferModeName = parameterValues.getValue("transferMode")?.toString()
139139
return when (transferModeName) {
140-
TransferMode.RELIABLE.name -> godot.entrygenerator.model.TransferMode.RELIABLE
141-
TransferMode.UNRELIABLE.name -> godot.entrygenerator.model.TransferMode.UNRELIABLE
142-
TransferMode.UNRELIABLE_ORDERED.name -> godot.entrygenerator.model.TransferMode.UNRELIABLE_ORDERED
140+
TransferMode.RELIABLE.fqName -> godot.entrygenerator.model.TransferMode.RELIABLE
141+
TransferMode.UNRELIABLE.fqName -> godot.entrygenerator.model.TransferMode.UNRELIABLE
142+
TransferMode.UNRELIABLE_ORDERED.fqName -> godot.entrygenerator.model.TransferMode.UNRELIABLE_ORDERED
143143
else -> godot.entrygenerator.model.TransferMode.RELIABLE
144144
}
145145
}
@@ -172,3 +172,6 @@ private fun <T : Number> AnnotationInfo.provideRangeHintAnnotation(stepDefault:
172172

173173
@Suppress("UNCHECKED_CAST")
174174
fun <T> AnnotationInfo.getParameterValue(parameterName: String): T = parameterValues.getValue(parameterName) as T
175+
176+
private val Enum<*>.fqName
177+
get() = "${this::class.qualifiedName}.$name"

kt/entry-generation/godot-class-graph-symbol-processor/src/main/kotlin/godot/annotation/processor/classgraph/extensions/ClassExtentions.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import godot.annotation.RegisterFunction
66
import godot.annotation.RegisterProperty
77
import godot.annotation.RegisterSignal
88
import godot.annotation.processor.classgraph.Settings
9-
import godot.annotation.processor.classgraph.constants.JVM_OBJECT
9+
import godot.annotation.processor.classgraph.constants.KOTLIN_ANY
1010
import godot.core.KtObject
1111
import godot.entrygenerator.model.ClassAnnotation
1212
import godot.entrygenerator.model.Clazz
@@ -17,7 +17,6 @@ import godot.entrygenerator.model.RegisteredSignal
1717
import godot.entrygenerator.model.Type
1818
import godot.entrygenerator.model.TypeKind
1919
import io.github.classgraph.ClassInfo
20-
import io.github.classgraph.ScanResult
2120
import io.github.classgraph.TypeArgument
2221

2322
fun ClassInfo.mapToClazz(settings: Settings): Clazz {
@@ -153,9 +152,8 @@ internal fun ClassInfo.provideRegisteredClassName(
153152
}
154153
}
155154

156-
// TODO: remove when https://github.com/classgraph/classgraph/issues/703 is fixed
157155
internal fun getJavaLangObjectType(settings: Settings): Type {
158-
val fqName = JVM_OBJECT
156+
val fqName = KOTLIN_ANY
159157
return Type(
160158
fqName = fqName,
161159
kind = TypeKind.CLASS,

0 commit comments

Comments
 (0)