Skip to content

Low-hanging consistency fruits #756

Open
@Bromeon

Description

@Bromeon

This is a very cosmetic issue, and not urgent at all 🙂

The engine often uses different representations for the same thing. In some cases that's OK or would be hard to change, but in others it's a special case in codegen that may be simple to add. Just to brainstorm, doesn't mean we change all those:

Instance IDs

We have InstanceId, ObjectID (native structs, wraps u64), raw u64, raw i64, EncodedObjectAsID...

  • Occurrences of instance_id
  • Ideally we can replace everything with InstanceId
  • Heuristic: methods ending in _instance_id that return u64 or have an id: u64 parameter.

Intly typed enums

Duplicated types in manual and generated code

We already handled some (Side, Corner, Vector2Axis, Vector3Axis), there are a few remaining:

They don't necessarily need to be de-duplicated, but we could at least provide conversions.

Integer type proliferation

  • _count methods (get/set) mostly use i32
  • Array::subarray_{deep|shallow} and PackedArray::subarray use usize but underlying Godot has i32, allowing wraparounds.
    • NodePath::subpath follows the same schema.
    • Considerations of making usize ranges, but allow utility to convert Godot negative-wrapped-range to convert into RangeBounds<usize>
  • Signals use i32/i64

Metadata

Metadata

Assignees

No one assigned

    Labels

    c: engineGodot classes (nodes, resources, ...)quality-of-lifeNo new functionality, but improves ergonomics/internals

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions