GodotSteam / GodotSteam

An open-source and fully functional Steamworks SDK / API module and plug-in for the Godot Game Engine.
http://godotsteam.com/
MIT License
2.74k stars 184 forks source link

error during mono method bindings generator #281

Closed hpf3 closed 1 year ago

hpf3 commented 1 year ago

Describe the bug ERROR: Invalid default value for parameter 'details' of method 'Steam.uploadLeaderboardScore' above error gotten during mono glue stage of compiling for c# the editor can still compile and run, but mono-editors won't know about the available methods

To Reproduce Steps to reproduce the behavior: here are the commands my update script runs before the error: cd /home/hpf3/Downloads/Github/godot git remote update git pull origin master rm -r ./bin mkdir ./bin

external processing script:

echo 'pre-process: GodotSteam' oldDir=$(pwd)

cd '/home/hpf3/updateScripts/pre-process/data/godot/Gramps-GodotSteam-b4f8db7/godotsteam' rm -r ./sdk mkdir ./sdk cp -r '/home/hpf3/updateScripts/pre-process/data/godot/sdk/public' ./sdk/ cp -r '/home/hpf3/updateScripts/pre-process/data/godot/sdk/redistributable_bin' ./sdk/

cd '/home/hpf3/Downloads/Github/godot/modules' rm -r ./godotsteam cp -r '/home/hpf3/updateScripts/pre-process/data/godot/Gramps-GodotSteam-b4f8db7/godotsteam' ./ cd /home/hpf3/Downloads/Github/godot cp ./modules/godotsteam/sdk/redistributable_bin/linux64/libsteam_api.so ./bin/ echo 480 > ./bin/steam_appid.txt

cd $oldDir

end external script

scons -j$(nproc) platform=linuxbsd tools=yes module_mono_enabled=yes mono_glue=no bin/godot.linuxbsd.editor.x86_64.mono --generate-mono-glue modules/mono/glue

errors during above command

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Version of Godot: Which version are you using? 4 https://github.com/godotengine/godot/commit/42ebc4ef65093ac7bb4e1785054e4632d3ddc9bc Version of GodotSteam: Please include the version number and if you are using the module or plug-in. godot4 version

https://github.com/Gramps/GodotSteam/tree/b4f8db765213b43bf0dc2675ce04c980c56d2ee1 Additional context Output of that last command: Godot Engine v4.0.beta.mono.custom_build.42ebc4ef6 - https://godotengine.org Vulkan API 1.2.0 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce GTX 1060

Ignoring type 'AnimationNodeEndState' because it's not exposed Ignoring type 'AnimationNodeStartState' because it's not exposed Ignoring type 'CreateDialog' because it's not exposed Ignoring type 'DependencyRemoveDialog' because it's not exposed Ignoring type 'EditorHelpBit' because it's not exposed Ignoring type 'FramebufferCacheRD' because it's not exposed Ignoring type 'GDScriptEditorTranslationParserPlugin' because it's not exposed Ignoring type 'GDScriptNativeClass' because it's not exposed Ignoring type 'GodotPhysicsDirectSpaceState2D' because it's not exposed Ignoring type 'GodotPhysicsDirectSpaceState3D' because it's not exposed Ignoring type 'GodotPhysicsServer2D' because it's not exposed Ignoring type 'GodotPhysicsServer3D' because it's not exposed Ignoring type 'GraphEditFilter' because it's not exposed Ignoring type 'GraphEditMinimap' because it's not exposed Ignoring type 'IPUnix' because it's not exposed Ignoring type 'ManagedCallableMiddleman' because it's not exposed Ignoring type 'MovieWriterMJPEG' because it's not exposed Ignoring type 'MovieWriterPNGWAV' because it's not exposed Ignoring type 'PhysicsServer2DExtension' because it's in the list of ignored types Ignoring type 'PhysicsServer3DExtension' because it's in the list of ignored types Ignoring type 'ResourceImporterMP3' because it's not exposed Ignoring type 'ResourceImporterOggVorbis' because it's not exposed Ignoring type 'SceneCacheInterface' because it's not exposed Ignoring type 'SceneRPCInterface' because it's not exposed Ignoring type 'SceneReplicationInterface' because it's not exposed Ignoring type 'SplitContainerDragger' because it's not exposed Ignoring type 'UniformSetCacheRD' because it's not exposed Ignoring type 'ViewPanner' because it's not exposed Declaring global enum 'Type' inside struct 'Variant' Declaring global enum 'Operator' inside struct 'Variant' Generating AESContext.cs... Generating AStar2D.cs... Generating AStar3D.cs... Generating AStarGrid2D.cs... Generating AcceptDialog.cs... Generating AnimatableBody2D.cs... Generating AnimatableBody3D.cs... Generating AnimatedSprite2D.cs... Generating AnimatedSprite3D.cs... Generating AnimatedTexture.cs... Generating Animation.cs... Generating AnimationLibrary.cs... Generating AnimationNode.cs... Generating AnimationNodeAdd2.cs... Generating AnimationNodeAdd3.cs... Generating AnimationNodeAnimation.cs... Generating AnimationNodeBlend2.cs... Generating AnimationNodeBlend3.cs... Generating AnimationNodeBlendSpace1D.cs... Generating AnimationNodeBlendSpace2D.cs... Generating AnimationNodeBlendTree.cs... Generating AnimationNodeOneShot.cs... Generating AnimationNodeOutput.cs... Generating AnimationNodeStateMachine.cs... Generating AnimationNodeStateMachinePlayback.cs... Generating AnimationNodeStateMachineTransition.cs... Generating AnimationNodeSync.cs... Generating AnimationNodeTimeScale.cs... Generating AnimationNodeTimeSeek.cs... Generating AnimationNodeTransition.cs... Generating AnimationPlayer.cs... Generating AnimationRootNode.cs... Generating AnimationTree.cs... Generating Area2D.cs... Generating Area3D.cs... Generating ArrayMesh.cs... Generating ArrayOccluder3D.cs... Generating AspectRatioContainer.cs... Generating AtlasTexture.cs... Generating AudioBusLayout.cs... Generating AudioEffect.cs... Generating AudioEffectAmplify.cs... Generating AudioEffectBandLimitFilter.cs... Generating AudioEffectBandPassFilter.cs... Generating AudioEffectCapture.cs... Generating AudioEffectChorus.cs... Generating AudioEffectCompressor.cs... Generating AudioEffectDelay.cs... Generating AudioEffectDistortion.cs... Generating AudioEffectEQ.cs... Generating AudioEffectEQ10.cs... Generating AudioEffectEQ21.cs... Generating AudioEffectEQ6.cs... Generating AudioEffectFilter.cs... Generating AudioEffectHighPassFilter.cs... Generating AudioEffectHighShelfFilter.cs... Generating AudioEffectInstance.cs... Generating AudioEffectLimiter.cs... Generating AudioEffectLowPassFilter.cs... Generating AudioEffectLowShelfFilter.cs... Generating AudioEffectNotchFilter.cs... Generating AudioEffectPanner.cs... Generating AudioEffectPhaser.cs... Generating AudioEffectPitchShift.cs... Generating AudioEffectRecord.cs... Generating AudioEffectReverb.cs... Generating AudioEffectSpectrumAnalyzer.cs... Generating AudioEffectSpectrumAnalyzerInstance.cs... Generating AudioEffectStereoEnhance.cs... Generating AudioListener2D.cs... Generating AudioListener3D.cs... Generating AudioServer.cs... Generating AudioStream.cs... Generating AudioStreamGenerator.cs... Generating AudioStreamGeneratorPlayback.cs... Generating AudioStreamMP3.cs... Generating AudioStreamMicrophone.cs... Generating AudioStreamOggVorbis.cs... Generating AudioStreamPlayback.cs... Generating AudioStreamPlaybackOggVorbis.cs... Generating AudioStreamPlaybackResampled.cs... Generating AudioStreamPlayer.cs... Generating AudioStreamPlayer2D.cs... Generating AudioStreamPlayer3D.cs... Generating AudioStreamRandomizer.cs... Generating AudioStreamWAV.cs... Generating BackBufferCopy.cs... Generating BaseButton.cs... Generating BaseMaterial3D.cs... Generating BitMap.cs... Generating Bone2D.cs... Generating BoneAttachment3D.cs... Generating BoneMap.cs... Generating BoxContainer.cs... Generating BoxMesh.cs... Generating BoxOccluder3D.cs... Generating BoxShape3D.cs... Generating Button.cs... Generating ButtonGroup.cs... Generating CPUParticles2D.cs... Generating CPUParticles3D.cs... Generating CSGBox3D.cs... Generating CSGCombiner3D.cs... Generating CSGCylinder3D.cs... Generating CSGMesh3D.cs... Generating CSGPolygon3D.cs... Generating CSGPrimitive3D.cs... Generating CSGShape3D.cs... Generating CSGSphere3D.cs... Generating CSGTorus3D.cs... Generating CSharpScript.cs... Generating CallbackTweener.cs... Generating Camera2D.cs... Generating Camera3D.cs... Generating CameraAttributes.cs... Generating CameraAttributesPhysical.cs... Generating CameraAttributesPractical.cs... Generating CameraFeed.cs... Generating CameraServer.cs... Generating CameraTexture.cs... Generating CanvasGroup.cs... Generating CanvasItem.cs... Generating CanvasItemMaterial.cs... Generating CanvasLayer.cs... Generating CanvasModulate.cs... Generating CanvasTexture.cs... Generating CapsuleMesh.cs... Generating CapsuleShape2D.cs... Generating CapsuleShape3D.cs... Generating CenterContainer.cs... Generating CharFXTransform.cs... Generating CharacterBody2D.cs... Generating CharacterBody3D.cs... Generating CheckBox.cs... Generating CheckButton.cs... Generating CircleShape2D.cs... Generating ClassDB.cs... Generating CodeEdit.cs... Generating CodeHighlighter.cs... Generating CollisionObject2D.cs... Generating CollisionObject3D.cs... Generating CollisionPolygon2D.cs... Generating CollisionPolygon3D.cs... Generating CollisionShape2D.cs... Generating CollisionShape3D.cs... Generating ColorPicker.cs... Generating ColorPickerButton.cs... Generating ColorRect.cs... Generating CompressedCubemap.cs... Generating CompressedCubemapArray.cs... Generating CompressedTexture2D.cs... Generating CompressedTexture2DArray.cs... Generating CompressedTexture3D.cs... Generating CompressedTextureLayered.cs... Generating ConcavePolygonShape2D.cs... Generating ConcavePolygonShape3D.cs... Generating ConeTwistJoint3D.cs... Generating ConfigFile.cs... Generating ConfirmationDialog.cs... Generating Container.cs... Generating Control.cs... Generating ConvexPolygonShape2D.cs... Generating ConvexPolygonShape3D.cs... Generating Crypto.cs... Generating CryptoKey.cs... Generating Cubemap.cs... Generating CubemapArray.cs... Generating Curve.cs... Generating Curve2D.cs... Generating Curve3D.cs... Generating CurveTexture.cs... Generating CurveXYZTexture.cs... Generating CylinderMesh.cs... Generating CylinderShape3D.cs... Generating DTLSServer.cs... Generating DampedSpringJoint2D.cs... Generating Decal.cs... Generating DirAccess.cs... Generating DirectionalLight2D.cs... Generating DirectionalLight3D.cs... Generating DisplayServer.cs... Generating ENetConnection.cs... Generating ENetMultiplayerPeer.cs... Generating ENetPacketPeer.cs... Generating EncodedObjectAsID.cs... Generating Engine.cs... Generating EngineDebugger.cs... Generating EngineProfiler.cs... Generating Environment.cs... Generating Expression.cs... Generating FastNoiseLite.cs... Generating FileAccess.cs... Generating FileDialog.cs... Generating FlowContainer.cs... Generating FogMaterial.cs... Generating FogVolume.cs... Generating Font.cs... Generating FontFile.cs... Generating FontVariation.cs... Generating GDScript.cs... Generating GLTFAccessor.cs... Generating GLTFAnimation.cs... Generating GLTFBufferView.cs... Generating GLTFCamera.cs... Generating GLTFDocument.cs... Generating GLTFDocumentExtension.cs... Generating GLTFDocumentExtensionConvertImporterMesh.cs... Generating GLTFLight.cs... Generating GLTFMesh.cs... Generating GLTFNode.cs... Generating GLTFSkeleton.cs... Generating GLTFSkin.cs... Generating GLTFSpecGloss.cs... Generating GLTFState.cs... Generating GLTFTexture.cs... Generating GLTFTextureSampler.cs... Generating GPUParticles2D.cs... Generating GPUParticles3D.cs... Generating GPUParticlesAttractor3D.cs... Generating GPUParticlesAttractorBox3D.cs... Generating GPUParticlesAttractorSphere3D.cs... Generating GPUParticlesAttractorVectorField3D.cs... Generating GPUParticlesCollision3D.cs... Generating GPUParticlesCollisionBox3D.cs... Generating GPUParticlesCollisionHeightField3D.cs... Generating GPUParticlesCollisionSDF3D.cs... Generating GPUParticlesCollisionSphere3D.cs... Generating Generic6DOFJoint3D.cs... Generating Geometry2D.cs... Generating Geometry3D.cs... Generating GeometryInstance3D.cs... Generating GodotSharp.cs... Generating Gradient.cs... Generating GradientTexture1D.cs... Generating GradientTexture2D.cs... Generating GraphEdit.cs... Generating GraphNode.cs... Generating GridContainer.cs... Generating GridMap.cs... Generating GrooveJoint2D.cs... Generating HBoxContainer.cs... Generating HFlowContainer.cs... Generating HMACContext.cs... Generating HScrollBar.cs... Generating HSeparator.cs... Generating HSlider.cs... Generating HSplitContainer.cs... Generating HTTPClient.cs... Generating HTTPRequest.cs... Generating HashingContext.cs... Generating HeightMapShape3D.cs... Generating HingeJoint3D.cs... Generating IP.cs... Generating Image.cs... Generating ImageFormatLoader.cs... Generating ImageFormatLoaderExtension.cs... Generating ImageTexture.cs... Generating ImageTexture3D.cs... Generating ImageTextureLayered.cs... Generating ImmediateMesh.cs... Generating ImporterMesh.cs... Generating ImporterMeshInstance3D.cs... Generating Input.cs... Generating InputEvent.cs... Generating InputEventAction.cs... Generating InputEventFromWindow.cs... Generating InputEventGesture.cs... Generating InputEventJoypadButton.cs... Generating InputEventJoypadMotion.cs... Generating InputEventKey.cs... Generating InputEventMIDI.cs... Generating InputEventMagnifyGesture.cs... Generating InputEventMouse.cs... Generating InputEventMouseButton.cs... Generating InputEventMouseMotion.cs... Generating InputEventPanGesture.cs... Generating InputEventScreenDrag.cs... Generating InputEventScreenTouch.cs... Generating InputEventShortcut.cs... Generating InputEventWithModifiers.cs... Generating InputMap.cs... Generating InstancePlaceholder.cs... Generating IntervalTweener.cs... Generating ItemList.cs... Generating JNISingleton.cs... Generating JSON.cs... Generating JSONRPC.cs... Generating JavaClass.cs... Generating JavaClassWrapper.cs... Generating JavaScriptBridge.cs... Generating JavaScriptObject.cs... Generating Joint2D.cs... Generating Joint3D.cs... Generating KinematicCollision2D.cs... Generating KinematicCollision3D.cs... Generating Label.cs... Generating Label3D.cs... Generating LabelSettings.cs... Generating Light2D.cs... Generating Light3D.cs... Generating LightOccluder2D.cs... Generating LightmapGI.cs... Generating LightmapGIData.cs... Generating LightmapProbe.cs... Generating Lightmapper.cs... Generating LightmapperRD.cs... Generating Line2D.cs... Generating LineEdit.cs... Generating LinkButton.cs... Generating MainLoop.cs... Generating MarginContainer.cs... Generating Marker2D.cs... Generating Marker3D.cs... Generating Marshalls.cs... Generating Material.cs... Generating MenuBar.cs... Generating MenuButton.cs... Generating Mesh.cs... Generating MeshDataTool.cs... Generating MeshInstance2D.cs... Generating MeshInstance3D.cs... Generating MeshLibrary.cs... Generating MeshTexture.cs... Generating MethodTweener.cs... Generating MissingNode.cs... Generating MissingResource.cs... Generating MobileVRInterface.cs... Generating MovieWriter.cs... Generating MultiMesh.cs... Generating MultiMeshInstance2D.cs... Generating MultiMeshInstance3D.cs... Generating MultiplayerAPI.cs... Generating MultiplayerAPIExtension.cs... Generating MultiplayerPeer.cs... Generating MultiplayerPeerExtension.cs... Generating MultiplayerSpawner.cs... Generating MultiplayerSynchronizer.cs... Generating Mutex.cs... Generating NativeExtension.cs... Generating NativeExtensionManager.cs... Generating NavigationAgent2D.cs... Generating NavigationAgent3D.cs... Generating NavigationLink2D.cs... Generating NavigationLink3D.cs... Generating NavigationMesh.cs... Generating NavigationMeshGenerator.cs... Generating NavigationObstacle2D.cs... Generating NavigationObstacle3D.cs... Generating NavigationPathQueryParameters2D.cs... Generating NavigationPathQueryParameters3D.cs... Generating NavigationPathQueryResult2D.cs... Generating NavigationPathQueryResult3D.cs... Generating NavigationPolygon.cs... Generating NavigationRegion2D.cs... Generating NavigationRegion3D.cs... Generating NavigationServer2D.cs... Generating NavigationServer3D.cs... Generating NinePatchRect.cs... Generating Node.cs... Generating Node2D.cs... Generating Node3D.cs... Generating Node3DGizmo.cs... Generating Noise.cs... Generating NoiseTexture2D.cs... Generating ORMMaterial3D.cs... Generating OS.cs... Generating Object.cs... Generating Occluder3D.cs... Generating OccluderInstance3D.cs... Generating OccluderPolygon2D.cs... Generating OggPacketSequence.cs... Generating OggPacketSequencePlayback.cs... Generating OmniLight3D.cs... Generating OpenXRAction.cs... Generating OpenXRActionMap.cs... Generating OpenXRActionSet.cs... Generating OpenXRHand.cs... Generating OpenXRIPBinding.cs... Generating OpenXRInteractionProfile.cs... Generating OpenXRInterface.cs... Generating OptimizedTranslation.cs... Generating OptionButton.cs... Generating PCKPacker.cs... Generating PackedDataContainer.cs... Generating PackedDataContainerRef.cs... Generating PackedScene.cs... Generating PacketPeer.cs... Generating PacketPeerDTLS.cs... Generating PacketPeerExtension.cs... Generating PacketPeerStream.cs... Generating PacketPeerUDP.cs... Generating Panel.cs... Generating PanelContainer.cs... Generating PanoramaSkyMaterial.cs... Generating ParallaxBackground.cs... Generating ParallaxLayer.cs... Generating ParticleProcessMaterial.cs... Generating Path2D.cs... Generating Path3D.cs... Generating PathFollow2D.cs... Generating PathFollow3D.cs... Generating Performance.cs... Generating PhysicalBone2D.cs... Generating PhysicalBone3D.cs... Generating PhysicalSkyMaterial.cs... Generating PhysicsBody2D.cs... Generating PhysicsBody3D.cs... Generating PhysicsDirectBodyState2D.cs... Generating PhysicsDirectBodyState2DExtension.cs... Generating PhysicsDirectBodyState3D.cs... Generating PhysicsDirectBodyState3DExtension.cs... Generating PhysicsDirectSpaceState2D.cs... Generating PhysicsDirectSpaceState2DExtension.cs... Generating PhysicsDirectSpaceState3D.cs... Generating PhysicsDirectSpaceState3DExtension.cs... Generating PhysicsMaterial.cs... Generating PhysicsPointQueryParameters2D.cs... Generating PhysicsPointQueryParameters3D.cs... Generating PhysicsRayQueryParameters2D.cs... Generating PhysicsRayQueryParameters3D.cs... Generating PhysicsServer2D.cs... Generating PhysicsServer2DManager.cs... Generating PhysicsServer3D.cs... Generating PhysicsServer3DManager.cs... Generating PhysicsServer3DRenderingServerHandler.cs... Generating PhysicsShapeQueryParameters2D.cs... Generating PhysicsShapeQueryParameters3D.cs... Generating PhysicsTestMotionParameters2D.cs... Generating PhysicsTestMotionParameters3D.cs... Generating PhysicsTestMotionResult2D.cs... Generating PhysicsTestMotionResult3D.cs... Generating PinJoint2D.cs... Generating PinJoint3D.cs... Generating PlaceholderCubemap.cs... Generating PlaceholderCubemapArray.cs... Generating PlaceholderMaterial.cs... Generating PlaceholderMesh.cs... Generating PlaceholderTexture2D.cs... Generating PlaceholderTexture2DArray.cs... Generating PlaceholderTexture3D.cs... Generating PlaceholderTextureLayered.cs... Generating PlaneMesh.cs... Generating PointLight2D.cs... Generating PointMesh.cs... Generating Polygon2D.cs... Generating PolygonOccluder3D.cs... Generating PolygonPathFinder.cs... Generating Popup.cs... Generating PopupMenu.cs... Generating PopupPanel.cs... Generating PortableCompressedTexture2D.cs... Generating PrimitiveMesh.cs... Generating PrismMesh.cs... Generating ProceduralSkyMaterial.cs... Generating ProgressBar.cs... Generating ProjectSettings.cs... Generating PropertyTweener.cs... Generating QuadMesh.cs... Generating QuadOccluder3D.cs... Generating RDAttachmentFormat.cs... Generating RDFramebufferPass.cs... Generating RDPipelineColorBlendState.cs... Generating RDPipelineColorBlendStateAttachment.cs... Generating RDPipelineDepthStencilState.cs... Generating RDPipelineMultisampleState.cs... Generating RDPipelineRasterizationState.cs... Generating RDPipelineSpecializationConstant.cs... Generating RDSamplerState.cs... Generating RDShaderFile.cs... Generating RDShaderSPIRV.cs... Generating RDShaderSource.cs... Generating RDTextureFormat.cs... Generating RDTextureView.cs... Generating RDUniform.cs... Generating RDVertexAttribute.cs... Generating RandomNumberGenerator.cs... Generating Range.cs... Generating RayCast2D.cs... Generating RayCast3D.cs... Generating RectangleShape2D.cs... Generating RefCounted.cs... Generating ReferenceRect.cs... Generating ReflectionProbe.cs... Generating RegEx.cs... Generating RegExMatch.cs... Generating RemoteTransform2D.cs... Generating RemoteTransform3D.cs... Generating RenderingDevice.cs... Generating RenderingServer.cs... Generating Resource.cs... Generating ResourceFormatLoader.cs... Generating ResourceFormatSaver.cs... Generating ResourceImporter.cs... Generating ResourceLoader.cs... Generating ResourcePreloader.cs... Generating ResourceSaver.cs... Generating ResourceUID.cs... Generating RibbonTrailMesh.cs... Generating RichTextEffect.cs... Generating RichTextLabel.cs... Generating RigidBody2D.cs... Generating RigidBody3D.cs... Generating RootMotionView.cs... Generating SceneMultiplayer.cs... Generating SceneReplicationConfig.cs... Generating SceneState.cs... Generating SceneTree.cs... Generating SceneTreeTimer.cs... Generating Script.cs... Generating ScriptExtension.cs... Generating ScriptLanguage.cs... Generating ScriptLanguageExtension.cs... Generating ScrollBar.cs... Generating ScrollContainer.cs... Generating SegmentShape2D.cs... Generating Semaphore.cs... Generating SeparationRayShape2D.cs... Generating SeparationRayShape3D.cs... Generating Separator.cs... Generating Shader.cs... Generating ShaderGlobalsOverride.cs... Generating ShaderInclude.cs... Generating ShaderMaterial.cs... Generating Shape2D.cs... Generating Shape3D.cs... Generating ShapeCast2D.cs... Generating ShapeCast3D.cs... Generating Shortcut.cs... Generating Skeleton2D.cs... Generating Skeleton3D.cs... Generating SkeletonIK3D.cs... Generating SkeletonModification2D.cs... Generating SkeletonModification2DCCDIK.cs... Generating SkeletonModification2DFABRIK.cs... Generating SkeletonModification2DJiggle.cs... Generating SkeletonModification2DLookAt.cs... Generating SkeletonModification2DPhysicalBones.cs... Generating SkeletonModification2DStackHolder.cs... Generating SkeletonModification2DTwoBoneIK.cs... Generating SkeletonModification3D.cs... Generating SkeletonModification3DCCDIK.cs... Generating SkeletonModification3DFABRIK.cs... Generating SkeletonModification3DJiggle.cs... Generating SkeletonModification3DLookAt.cs... Generating SkeletonModification3DStackHolder.cs... Generating SkeletonModification3DTwoBoneIK.cs... Generating SkeletonModificationStack2D.cs... Generating SkeletonModificationStack3D.cs... Generating SkeletonProfile.cs... Generating SkeletonProfileHumanoid.cs... Generating Skin.cs... Generating SkinReference.cs... Generating Sky.cs... Generating Slider.cs... Generating SliderJoint3D.cs... Generating SoftBody3D.cs... Generating SphereMesh.cs... Generating SphereOccluder3D.cs... Generating SphereShape3D.cs... Generating SpinBox.cs... Generating SplitContainer.cs... Generating SpotLight3D.cs... Generating SpringArm3D.cs... Generating Sprite2D.cs... Generating Sprite3D.cs... Generating SpriteBase3D.cs... Generating SpriteFrames.cs... Generating StandardMaterial3D.cs... Generating StaticBody2D.cs... Generating StaticBody3D.cs... Generating Steam.cs... ERROR: Invalid default value for parameter 'details' of method 'Steam.uploadLeaderboardScore'. at: _generate_cs_method (modules/mono/editor/bindings_generator.cpp:1976)

================================================================ handle_crash: Program crashed with signal 4 Engine version: Godot Engine v4.0.beta.mono.custom_build (42ebc4ef65093ac7bb4e1785054e4632d3ddc9bc) Dumping the backtrace. Please include this when reporting the bug on: https://github.com/godotengine/godot/issues [1] /lib/x86_64-linux-gnu/libc.so.6(+0x42520) [0x7f93622d0520] (??:0) [2] bin/godot.linuxbsd.editor.x86_64.mono(+0x14fd7c2) [0x55e2aef437c2] (??:0) [3] bin/godot.linuxbsd.editor.x86_64.mono(+0x1501c69) [0x55e2aef47c69] (??:0) [4] bin/godot.linuxbsd.editor.x86_64.mono(+0x15047be) [0x55e2aef4a7be] (??:0) [5] bin/godot.linuxbsd.editor.x86_64.mono(+0x1506528) [0x55e2aef4c528] (??:0) [6] bin/godot.linuxbsd.editor.x86_64.mono(+0x1513168) [0x55e2aef59168] (??:0) [7] bin/godot.linuxbsd.editor.x86_64.mono(+0x151349c) [0x55e2aef5949c] (??:0) [8] bin/godot.linuxbsd.editor.x86_64.mono(+0x14d67e8) [0x55e2aef1c7e8] (??:0) [9] bin/godot.linuxbsd.editor.x86_64.mono(+0x4e4b8ca) [0x55e2b28918ca] (??:0) [10] bin/godot.linuxbsd.editor.x86_64.mono(+0xb38656) [0x55e2ae57e656] (??:0) [11] bin/godot.linuxbsd.editor.x86_64.mono(+0xb3f5fe) [0x55e2ae5855fe] (??:0) [12] bin/godot.linuxbsd.editor.x86_64.mono(+0xae8b51) [0x55e2ae52eb51] (??:0) [13] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f93622b7d90] (??:0) [14] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7f93622b7e40] (??:0) [15] bin/godot.linuxbsd.editor.x86_64.mono(+0xaf5715) [0x55e2ae53b715] (??:0) -- END OF BACKTRACE --

./godot.bash: line 46: 13699 Aborted (core dumped) bin/godot.linuxbsd.editor.x86_64.mono --generate-mono-glue modules/mono/glue

hpf3 commented 1 year ago

im not familiar enough with the 3 involved codebases(this,godot,steamworks) to know which is responsible, but let me know if i should bring this up somewhere else

hpf3 commented 1 year ago

and if it helps, here are the actual bash files i use, note they were made just for my system, let me know if there are questions on what each directory is

godot (copy).txt GodotSteamPre (copy).txt

raulsntos commented 1 year ago

Your build script seems to be outdated, in Godot 4.0 the mono_glue option no longer exists and we don't need to build the editor twice. You can read the updated build steps in the .NET module's README.md. These are the commands you should be using:

echo 'building editor'
scons -j$(nproc) platform=linuxbsd use_llvm=yes use_lld=yes bits=64 module_mono_enabled=yes
echo 'making glue'
bin/godot.linuxbsd.editor.x86_64.mono --generate-mono-glue modules/mono/glue
echo 'building GodotSharp libraries'
./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin

Also, I strongly recommend you to setup a local NuGet repository and use the --push-nupkgs-local option of build_assemblies.py, otherwise you'll have to manage the packages manually.


About the issue with generating the .NET bindings, it seems the uploadLeaderboardScore method had the wrong default value, I opened #282 to fix it.

Gramps commented 1 year ago

Yeah, you can try again with the updated code thanks to @raulsntos. And thanks for those patches!

I'm not sure what else is needed to use GodotSteam with C#; a few folks in our Discord do. You may also want to check out Steamworks.NET or Facepunch's implementations, though they are primarily for Unity.

raulsntos commented 1 year ago

Unfortunately, the .NET build of the engine still fails due to name conflicts:

These members are generated in the Steam C# class with the same name due to conversion to PascalCase to follow C# naming conventions.

A solution could be to bind these constants as enums instead since they are already defined as enums in C++ and it would allow C# to generate enums instead of constants which would be more idiomatic. I'm willing to implement this if we agree this is the right solution.

Gramps commented 1 year ago

Sorry for the delay. Those enums / constants should be bound already near the end of the godotsteam.cpp file. If a change makes it work and doesn't impact the GDscript users then that should be OK; as most people using this project are doing so with GDscript and not C#.

raulsntos commented 1 year ago

I meant binding them with BIND_ENUM_CONSTANT and BIND_BITFIELD_FLAG instead of BIND_CONSTANT like it currently is. I don't think this should negatively impact GDScript users.

Gramps commented 1 year ago

Gotcha. I will check into them this evening to double-check.

Gramps commented 1 year ago

Yes, you are correct; we should switch those out. If you'd like to do it, that would be awesome. I can also try to get to it tomorrow. Thanks for the suggested changes!

raulsntos commented 1 year ago

I opened #284 but I noticed there is another conflict, now the CheckFileSignature enum conflicts with the check_file_signature signal.

Maybe we could consider renaming one of them, but I'll see if I can change C# bindings generator to avoid conflicts by adding a suffix, it should already add the Enum suffix when there are conflicts with the name of the class it's defined in, but it's more difficult when the conflicts are between members because by the time we find a conflict the other member has already been added to the generation.

By the way, #283 was merged in master so it's not in the godot4 branch, I assumed commits to master would carry over to godot4 but maybe I was wrong, I'm not familiar with the contributing workflow so I'm sorry if I made a mistake, let me know if you want me to create another PR for godot4 with the cherry-pick and which branch I should be targeting for changes that apply to both 3.x and 4.0.

Gramps commented 1 year ago

Hmm, sounds like C# is a minefield! Haha. It reminds me of the trouble we had with MinGW; more and more bugs kept popping up with each one that was fixed.

I'm a little iffy about changing names of things because it can break people's projects when they update. The biggest changes we've discussed have been from 3.x to 4.x, as is tradition.

I also noticed last night that 3.x doesn't have BIND_BITFIELD_FLAG but does have BIND_ENUM_CONSTANT; I guess the other is in 4.x?

Yes, master is not related to 4.x, but 4.x was originally built from the master branch.

raulsntos commented 1 year ago

Yeah I would only consider renames in the godot4 branch. Up to you, I can probably guard against it in the bindings generator though so I'll try to do that since your module might not be the only one where conflicts like this may happen (Edit: opened https://github.com/godotengine/godot/pull/67440).

So what branch should I target for changes that apply to both 3.x and 4.0? Also, will https://github.com/Gramps/GodotSteam/pull/283 make its way to the godot4 branch?

Gramps commented 1 year ago

Seems like they merged that change into Godot! Very cool.

Yeah, the change to the master from #283 should definitely be moved into godot4. I will try to get it added in when I do these compiles for beta 3.

Gramps commented 1 year ago

Behind on this but I hope to finish up everything before I leave this weekend! Sorry for the delay.

Gramps commented 1 year ago

OK, the merge happened a few days ago, I think. That should resolve the binding issues, I believe. I will close the issue, but if I am incorrect on this, please let me know!