From c29411d136e1ddf51beb5251d3be4dc91b0ebe2d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 17:38:09 +0000 Subject: [PATCH] [Marching Squares] Fix drawing only the screen on a 3D layer (v0.6.2) With "Must only draw what is on the screen", "Draw the field" gave the coordinates only to Layer.convertCoords to find the screen corners in the scene, which throws "Cannot set properties of undefined" on a layer whose camera is rotated in 3D (a bug of GDevelop, fixed in 4ian/GDevelop#9284). A point for the result is given to each conversion, so it works with the released versions of GDevelop too. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Wa8uKpYuQrYqGYnqGCsquj --- extensions/reviewed/MarchingSquares.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/extensions/reviewed/MarchingSquares.json b/extensions/reviewed/MarchingSquares.json index c619ca256..4df857e3f 100644 --- a/extensions/reviewed/MarchingSquares.json +++ b/extensions/reviewed/MarchingSquares.json @@ -10,7 +10,7 @@ "previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/peanut-outline.svg", "shortDescription": "Draw dynamically changing shapes like a fog of war.", "dimension": "2D", - "version": "0.6.1", + "version": "0.6.2", "description": [ "It can be helpful for:", " * Liquid effects like water, blobs or lava ([open the project online](https://editor.gdevelop.io/?project=example://marching-squares-liquids))", @@ -2579,10 +2579,10 @@ "", "if (behavior._behaviorData.MustOnlyDrawScreen) {", " const layer = runtimeScene.getLayer(object.getLayer());", - " const screen1 = layer.convertCoords(0, 0);", - " const screen2 = layer.convertCoords(screenWidth, 0);", - " const screen3 = layer.convertCoords(0, screenHeight);", - " const screen4 = layer.convertCoords(screenWidth, screenHeight);", + " const screen1 = layer.convertCoords(0, 0, 0, [0, 0]);", + " const screen2 = layer.convertCoords(screenWidth, 0, 0, [0, 0]);", + " const screen3 = layer.convertCoords(0, screenHeight, 0, [0, 0]);", + " const screen4 = layer.convertCoords(screenWidth, screenHeight, 0, [0, 0]);", "", " const screenLeft = Math.min(screen1[0], screen2[0], screen3[0], screen4[0]);", " const screenTop = Math.min(screen1[1], screen2[1], screen3[1], screen4[1]);",