Hey, I'm trying to create a pipeline that takes files from a flat directory source/ that contains files with names formatted as yyyy-mm-dd-some-file-name.md and processes them with the output being created in destination/yyyy/mm/dd/some-file-name.md. I managed to string together an ugly script that converts the source path to destination path, but the problem is that make says that there is no rule to make the target. Here is my code so far:
SOURCE := $(wildcard source/*.md)
DESTINATION := $(foreach f,SOURCE,destination/$(shell echo $(notdir $(f)) | sed -E 's/^([0-9]{4})-([0-9]{2})-([0-9]{2})-(.*)\.md$$/\1\/\2\/\3\/\4.md/'))
$(DESTINATION): $(SOURCE)
@mkdir -p $(dir $(shell echo $(notdir $@) | sed -E 's/^([0-9]{4})-([0-9]{2})-([0-9]{2})-(.*)\.md$$/\1\/\2\/\3/'))
/bin/bash ./myscript.sh $< > $@
I believe that make sees that there are no target directories yet and just aborts the rule, but I'm not knowledgeable enough and just starting out with that tool. I would appreciate some guidance if any of you folks know a bit of Make.
Hi all, I'm new to Godot and recently returned to my project that I have started last year. I've been trying to create a reusable button and use it in my GUI scenes. I created a separate scene round_button.tscn which has the following structure:
Control
└─ RoundTextureButton
└─ CenterContainer
└─ IconTextureRect
RoundTextureButton is a TextureButton that reacts to mouse hover and IconTextureRect is a TextureRect that is meant to be an icon with texture set as an AtlasTexture. I made the following script that is attached to Control:
extends Control
class_name RoundButton
enum IconID { play, pause, back, forward, … }
const ICON_REGIONS = [
Vector2i(64, 0),
Vector2i(64, 16),
…]
@export var icon_id: IconID = IconID.play
@onready var icon_rect: TextureRect = $RoundTextureButton/CenterContainer/IconTextureRect
func _ready() -> void:
icon_rect.texture.region = Rect2(ICON_REGIONS[icon_id], Vector2i(16, 16))
This creates a dropdown in Godot GUI which allows me to comfortably set the type of a button. It works as expected when I run the button scene.
Then I Instantiate Child Scene… in my menu scene menu.tscn to add a few buttons to my game menu. One button works fine, but when I add two or more, they all have the same icon, the last button that I added and set. What am I missing here with sharing attributes? I read that exported arrays are shared by all instances because the variables are really pointers to some memory location, but my icon_id is an enum value. To test this I have put a print statement in _ready() and it seems like the buttons have distinct values, but the icons are still shared by all of them.
I'm using godot-rust bindings to provide some additional functionality to my codebase. I wrote methods associated with a struct that I would like to use in my game and made a few unit tests to ensure that they're working correctly. After godotifying my struct with attributes described in Hello World section of the godot-rust book I got a slew of errors, some of which are about initialization of the struct in test functions. After clearing them all and executing MyClass:new_alloc() at the beginning of a test function the compiler complains that Godot engine is not available. I hit a roadblock because I don't know how to execute tests in Godot environment. Changing #[test] to #[itest] makes the code compile but that's because it executes 0 tests; from what I see itest is meant for developing godot-rust anyway. What is the preferred way of unit testing godot-rust code?
Hello all! I've been getting into self-hosting stuff and ran into an issue with port forwarding my services to the internet. I don't have access to my router's config (provided by ISP), so I researched tunnels and there is ngrok, Cloudflare Tunnel and other more well-known reverse proxy services, but I also stumbled upon loophole.cloud. I can't find more information about it except a few Reddit comments here and there. Has anyone here actually used it and can say a few words about it?
I'm new to Godot and I'd like to make a game with 2d isometric graphics. There are lots of tutorials on using tilesets, but every one I've seen so far uses one image per one tile (even if they're put together in one large spritesheet) like so:

This is problematic if I want to have lots of variation in my base shape, like different egdes and corners and so on. What I'd like to achieve is to have to draw just parts of the blocks and put them together to form a tile in the editor, like so:

This way I only need to modify the specific sub-tiles if i want to change, for example, the look of grass on top, and it will propagate to all tiles with grass on top. I know about tile patterns in Godot, but they seem to be something else. I want to take the triangular patches from my spritesheet and compose the tiles out of them. Is it possible in Godot?