IntellectualSites / IntellectualSites/FastAsyncWorldEdit

Change FAWE to use an int[] or long[] based ordinal system instead of a char[] ordinal system in order to support more than 65535 different blockstates

Open
#1,938 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Enhancement
Dominant language
Java
Stars
806
Forks
394
Avg merge
22h 19m
Merged PRs (30d)
14

Description

What feature do you want to see added?

Hello, I am currently working on a Forge adapter update for FastAsyncWorldEdit, and during my work I have come across an issue that prevents me from submitting a pull request for it at this time. FAWE currently uses a char[] based ordinal system when it performs its operations. Due to this, the system is currently limited to supporting a maximum of 65535 blockstates since that is the maximum value of the char primitive data type. As such, I would like to suggest converting the system to be based off of either integer arrays or long arrays. Doing so would allow support for significantly more blockstates added by mods. I have implemented the change to an int[] based ordinal system on my own local version and have my Forge adapter update in a working and nearly complete state.

I would be happy to submit this change myself as a PR if it would be desired.

Are there any alternatives?

Currently there are no alternatives for supporting more that 65535 blockstates in FAWE's ordinal system.

Anything else?

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing FAWE's char[]-based ordinal system and identify every operation that assumes 16-bit values. Compare the affected paths with the reported local int[] implementation and verify that blockstates beyond 65535 are supported without breaking existing operations. The issue names no files or tests, so the relevant entry points and validation coverage must first be located.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.