feat: add Findable Blocks (Presents) assets #4

Merged
nathan merged 7 commits from feature/findable-blocks into main 2026-09-09 22:06:47 +00:00

Summary

Companion RES PR for BEH findable-blocks / presents.

Branch eature/findable-blocks existed on Forgejo after the GitHub->Forgejo move, but no open PR. Rebased onto current main and reopened here.

Assets

  • Present block geometry (models/blocks/findable_blocks/present.geo.json)
  • 16 present color textures + findable block texture
  • extures/terrain_texture.json entries
  • Findable-block / present translation keys across all 7 locales

Test plan

  • Place pokeb:present with BEH PR 487 and confirm all 16 skins render
  • Confirm claim/admin form strings resolve (not raw keys)
## Summary Companion RES PR for BEH [findable-blocks / presents](https://github.com/smell-of-curry/pokebedrock-beh/pull/487). Branch eature/findable-blocks existed on Forgejo after the GitHub->Forgejo move, but no open PR. Rebased onto current main and reopened here. ## Assets - Present block geometry (models/blocks/findable_blocks/present.geo.json) - 16 present color textures + findable block texture - extures/terrain_texture.json entries - Findable-block / present translation keys across all 7 locales ## Test plan - [ ] Place pokeb:present with BEH PR 487 and confirm all 16 skins render - [ ] Confirm claim/admin form strings resolve (not raw keys)
Rename reward grant error localization key
Some checks failed
Auto Assign / run (pull_request_target) Successful in 2s
CI / build-and-test (20.x) (pull_request) Failing after 18s
Model Preview / model-preview (pull_request) Successful in 9s
bb9ae3ef6a
Replaced `forms.playtime.error.grantFailed` with `message.rewards.grantError` across all language files. The new entry uses `%s` placeholders and centralizes reward grant failure messaging under the rewards namespace.
smell-of-curry was assigned by forgejo-actions 2026-08-05 18:28:17 +00:00
planet force-pushed feature/findable-blocks from bb9ae3ef6a
Some checks failed
Auto Assign / run (pull_request_target) Successful in 2s
CI / build-and-test (20.x) (pull_request) Failing after 18s
Model Preview / model-preview (pull_request) Successful in 9s
to bcc0cb327e
Some checks failed
Model Preview / model-preview (pull_request) Successful in 10s
CI / build-and-test (20.x) (pull_request) Failing after 18s
2026-08-14 00:12:41 +00:00
Compare
planet force-pushed feature/findable-blocks from bcc0cb327e
Some checks failed
Model Preview / model-preview (pull_request) Successful in 10s
CI / build-and-test (20.x) (pull_request) Failing after 18s
to 61a1d097ad
Some checks failed
Model Preview / model-preview (pull_request) Successful in 10s
CI / build-and-test (20.x) (pull_request) Failing after 17s
2026-08-14 20:42:34 +00:00
Compare
smell-of-curry force-pushed feature/findable-blocks from 61a1d097ad
Some checks failed
Model Preview / model-preview (pull_request) Successful in 10s
CI / build-and-test (20.x) (pull_request) Failing after 17s
to bca8b16a92
Some checks failed
Model Preview / model-preview (pull_request) Successful in 11s
CI / build-and-test (20.x) (pull_request) Failing after 20s
2026-08-26 13:38:36 +00:00
Compare
bot requested changes 2026-08-30 22:58:32 +00:00
bot left a comment

Resource-pack review of head bca8b16a9230. Live human PR (smell-of-curry); Ghost beh#487 is ignored on the beh side. mergeable=true.

Present geo, 16 color textures, block.png, and terrain_texture.json keys (findable_block, findable_blocks_present_*) line up. Form/actionbar keys are present in all 7 locales.

Blockers:

  1. texts/en_US.lang (and the other locales, same +60/−1) ends with a bare Error: %s line after message.rewards.grantError=.... That is not a key=value entry — it will be ignored or poison lang parse. Fold it into the grantError value (...discord.\nError: %s) or give it a real key.
  2. No tile.pokeb:present.name / tile.pokeb:findable_block.name (or item names). Inventory/hotbar will show the raw identifier. Add tile names if these blocks are player-visible.

Nit: blocks.json has no pokeb:present / findable sound entry. Existing custom blocks in this pack are sound-only there; textures can come from BEH material_instances. Add a sound row if you want footsteps to match.

Resource-pack review of head `bca8b16a9230`. Live human PR (smell-of-curry); Ghost beh#487 is ignored on the beh side. mergeable=true. Present geo, 16 color textures, `block.png`, and `terrain_texture.json` keys (`findable_block`, `findable_blocks_present_*`) line up. Form/actionbar keys are present in all 7 locales. **Blockers:** 1. `texts/en_US.lang` (and the other locales, same +60/−1) ends with a bare `Error: %s` line after `message.rewards.grantError=...`. That is not a `key=value` entry — it will be ignored or poison lang parse. Fold it into the grantError value (`...discord.\nError: %s`) or give it a real key. 2. No `tile.pokeb:present.name` / `tile.pokeb:findable_block.name` (or item names). Inventory/hotbar will show the raw identifier. Add tile names if these blocks are player-visible. Nit: `blocks.json` has no `pokeb:present` / findable sound entry. Existing custom blocks in this pack are sound-only there; textures can come from BEH `material_instances`. Add a sound row if you want footsteps to match.
texts/en_US.lang Outdated
@ -11658,2 +11715,4 @@
phud.playerPing.label=Current Ping:
message.rewards.grantError=§cFailed to give reward %s, please report this in the discord.
Error: %s
Member

Orphan lang line — no key=. Either append to message.rewards.grantError as a second line or introduce message.rewards.grantError.detail=Error: %s. As written this is invalid .lang.

Orphan lang line — no `key=`. Either append to `message.rewards.grantError` as a second line or introduce `message.rewards.grantError.detail=Error: %s`. As written this is invalid `.lang`.
nathan marked this conversation as resolved
@ -487,1 +487,4 @@
"textures": "textures/blocks/berries/wiki/stage_5"
},
"findable_block": {
"textures": "textures/blocks/findable_blocks/block"
Member

Atlas keys match the 16 PNGs + textures/blocks/findable_blocks/block. Good. Still missing the client tile.pokeb:* display names in lang, and there is no blocks.json sound entry for the present/findable identifiers.

Atlas keys match the 16 PNGs + `textures/blocks/findable_blocks/block`. Good. Still missing the client `tile.pokeb:*` display names in lang, and there is no `blocks.json` sound entry for the present/findable identifiers.
nathan marked this conversation as resolved
Fix Lang File, and Update Block Sounds Json
Some checks failed
Model Preview / model-preview (pull_request) Successful in 10s
CI / build-and-test (20.x) (pull_request) Failing after 22s
c997d59f84
bot requested changes 2026-09-09 20:53:02 +00:00
bot left a comment

Re-review of head c997d59f84cc (sync after "Fix Lang File, and Update Block Sounds Json"). Prior REQUEST_CHANGES on bca8b16a9230 is stale. mergeable=false — rebase onto current main before merge; not approving conflicted heads.

Fixed since last review

  • texts/en_US.lang: bare Error: %s folded into message.rewards.grantError=...\nError: %s.
  • tile.pokeb:findable_block.name added in en_US.
  • blocks.json: pokeb:findable_block sound row added.

Still blocking

  1. Bare Error: %s remains after message.rewards.grantError in the other 6 locales (cs_CZ, de_DE, es_ES, pt_BR, ru_RU, zh_CN). Same poison as before — fold into the grantError value like en_US, or give it a real key. Do not leave a non-key=value line.
  2. tile.pokeb:findable_block.name is en_US-only. Mirror it in all 7 locales.
  3. Still no tile.pokeb:present.name (test plan places pokeb:present). Inventory/hotbar will show the raw id if that block is player-visible. Add it in all 7 locales (and a blocks.json sound row for pokeb:present if it is a distinct block id).

Assets otherwise line up: present geo geometry.findable_block_present, 16 present textures + block.png, terrain_texture.json keys (findable_block, findable_blocks_present_*), form/actionbar findable keys present in all 7 locales.

CI not verified green on this head — do not treat as merge-ready until checks pass post-rebase.

Re-review of head `c997d59f84cc` (sync after "Fix Lang File, and Update Block Sounds Json"). Prior REQUEST_CHANGES on `bca8b16a9230` is stale. mergeable=false — rebase onto current `main` before merge; not approving conflicted heads. **Fixed since last review** - `texts/en_US.lang`: bare `Error: %s` folded into `message.rewards.grantError=...\nError: %s`. - `tile.pokeb:findable_block.name` added in en_US. - `blocks.json`: `pokeb:findable_block` sound row added. **Still blocking** 1. Bare `Error: %s` remains after `message.rewards.grantError` in the other 6 locales (`cs_CZ`, `de_DE`, `es_ES`, `pt_BR`, `ru_RU`, `zh_CN`). Same poison as before — fold into the grantError value like en_US, or give it a real key. Do not leave a non-`key=value` line. 2. `tile.pokeb:findable_block.name` is en_US-only. Mirror it in all 7 locales. 3. Still no `tile.pokeb:present.name` (test plan places `pokeb:present`). Inventory/hotbar will show the raw id if that block is player-visible. Add it in all 7 locales (and a `blocks.json` sound row for `pokeb:present` if it is a distinct block id). Assets otherwise line up: present geo `geometry.findable_block_present`, 16 present textures + `block.png`, `terrain_texture.json` keys (`findable_block`, `findable_blocks_present_*`), form/actionbar findable keys present in all 7 locales. CI not verified green on this head — do not treat as merge-ready until checks pass post-rebase.
texts/cs_CZ.lang Outdated
@ -11658,2 +11715,4 @@
phud.playerPing.label=Aktuální ping:
message.rewards.grantError=§cFailed to give reward %s, please report this in the discord.
Error: %s
Member

Still a bare Error: %s (not key=value). Same in de_DE / es_ES / pt_BR / ru_RU / zh_CN. Fold into message.rewards.grantError like en_US (...discord.\nError: %s) or give it a real key.

Still a bare `Error: %s` (not `key=value`). Same in de_DE / es_ES / pt_BR / ru_RU / zh_CN. Fold into `message.rewards.grantError` like en_US (`...discord.\nError: %s`) or give it a real key.
nathan marked this conversation as resolved
texts/en_US.lang Outdated
@ -38,2 +38,4 @@
item.pokeb:box_of_chocolate=Box Of Chocolate
## Findable Blocks
tile.pokeb:findable_block.name=Findable Block
Member

tile.pokeb:findable_block.name is good here — mirror it in the other 6 locales. Still missing tile.pokeb:present.name if pokeb:present is the placeable id (see test plan).

`tile.pokeb:findable_block.name` is good here — mirror it in the other 6 locales. Still missing `tile.pokeb:present.name` if `pokeb:present` is the placeable id (see test plan).
nathan marked this conversation as resolved
nathan force-pushed feature/findable-blocks from c997d59f84
Some checks failed
Model Preview / model-preview (pull_request) Successful in 10s
CI / build-and-test (20.x) (pull_request) Failing after 22s
to 41132feb10
Some checks failed
Model Preview / model-preview (pull_request) Successful in 11s
CI / build-and-test (20.x) (pull_request) Failing after 18s
2026-09-09 21:20:21 +00:00
Compare
bot requested changes 2026-09-09 21:23:01 +00:00
bot left a comment

Re-review of head 41132feb1084 (sync after rebase onto current main). Prior REQUEST_CHANGES on c997d59f84cc / bca8b16a9230 are stale. mergeable=true now — conflict hold lifted.

Fixed since last review

  • Rebased clean onto main (36203026d0d3).

Still blocking (unchanged vs c997d59f84cc review)

  1. Bare Error: %s remains after message.rewards.grantError in the other 6 locales (cs_CZ, de_DE, es_ES, pt_BR, ru_RU, zh_CN). Fold into the grantError value like en_US (...discord.\nError: %s), or give it a real key. Do not leave a non-key=value line.
  2. tile.pokeb:findable_block.name is still en_US-only. Mirror it in all 7 locales.
  3. Still no tile.pokeb:present.name (test plan places pokeb:present). Inventory/hotbar will show the raw id if that block is player-visible. Add it in all 7 locales (and a blocks.json sound row for pokeb:present if it is a distinct block id).

Assets otherwise still line up: present geo geometry.findable_block_present, 16 present textures + block.png, terrain_texture.json keys (findable_block, findable_blocks_present_*), form/actionbar findable keys in all 7 locales, pokeb:findable_block sound row present.

Not merge-ready until the lang blockers land (and CI is green on this head).

Re-review of head `41132feb1084` (sync after rebase onto current `main`). Prior REQUEST_CHANGES on `c997d59f84cc` / `bca8b16a9230` are stale. mergeable=true now — conflict hold lifted. **Fixed since last review** - Rebased clean onto `main` (`36203026d0d3`). **Still blocking** (unchanged vs `c997d59f84cc` review) 1. Bare `Error: %s` remains after `message.rewards.grantError` in the other 6 locales (`cs_CZ`, `de_DE`, `es_ES`, `pt_BR`, `ru_RU`, `zh_CN`). Fold into the grantError value like `en_US` (`...discord.\nError: %s`), or give it a real key. Do not leave a non-`key=value` line. 2. `tile.pokeb:findable_block.name` is still `en_US`-only. Mirror it in all 7 locales. 3. Still no `tile.pokeb:present.name` (test plan places `pokeb:present`). Inventory/hotbar will show the raw id if that block is player-visible. Add it in all 7 locales (and a `blocks.json` sound row for `pokeb:present` if it is a distinct block id). Assets otherwise still line up: present geo `geometry.findable_block_present`, 16 present textures + `block.png`, `terrain_texture.json` keys (`findable_block`, `findable_blocks_present_*`), form/actionbar findable keys in all 7 locales, `pokeb:findable_block` sound row present. Not merge-ready until the lang blockers land (and CI is green on this head).
@ -429,6 +429,9 @@
"pokeb:yago_berry_plant": {
"sound": "grass"
},
"pokeb:findable_block": {
Member

pokeb:findable_block sound row is good. If pokeb:present is a distinct block id (test plan), add a matching sound row here too.

`pokeb:findable_block` sound row is good. If `pokeb:present` is a distinct block id (test plan), add a matching sound row here too.
Member

pokeb:present is not a valid block

`pokeb:present` is not a valid block
Member

Ack — thanks @nathan. Dropping the pokeb:present sound-row ask.

Also dropping tile.pokeb:present.name from the lang blockers for the same reason.

Still open on this head (41132feb):

  1. Bare "Error: %s" after message.rewards.grantError in the other 6 locales
  2. Mirror tile.pokeb:findable_block.name into all 7 locales (currently en_US-only)
Ack — thanks @nathan. Dropping the pokeb:present sound-row ask. Also dropping tile.pokeb:present.name from the lang blockers for the same reason. Still open on this head (41132feb): 1. Bare "Error: %s" after message.rewards.grantError in the other 6 locales 2. Mirror tile.pokeb:findable_block.name into all 7 locales (currently en_US-only)
nathan marked this conversation as resolved
texts/cs_CZ.lang Outdated
@ -11659,2 +11715,4 @@
phud.playerPing.label=Aktuální ping:
message.rewards.grantError=§cFailed to give reward %s, please report this in the discord.
Error: %s
Member

Still a bare Error: %s line (not key=value). Same poison in de_DE / es_ES / pt_BR / ru_RU / zh_CN. Fold into message.rewards.grantError like en_US (...discord.\nError: %s), or give it a real key.

Still a bare `Error: %s` line (not `key=value`). Same poison in `de_DE` / `es_ES` / `pt_BR` / `ru_RU` / `zh_CN`. Fold into `message.rewards.grantError` like `en_US` (`...discord.\nError: %s`), or give it a real key.
nathan marked this conversation as resolved
@ -38,2 +38,4 @@
item.pokeb:box_of_chocolate=Box Of Chocolate
## Findable Blocks
tile.pokeb:findable_block.name=Findable Block
Member

tile.pokeb:findable_block.name is still en_US-only — mirror in the other 6 locales. Also still missing tile.pokeb:present.name in all 7 locales (test plan places pokeb:present; inventory will show the raw id otherwise).

`tile.pokeb:findable_block.name` is still en_US-only — mirror in the other 6 locales. Also still missing `tile.pokeb:present.name` in all 7 locales (test plan places `pokeb:present`; inventory will show the raw id otherwise).
Member

Update on this thread: dropping the tile.pokeb:present.name ask — @nathan confirmed pokeb:present is not a valid block.

Still need: mirror tile.pokeb:findable_block.name into the other 6 locales (this key stays).

Update on this thread: dropping the tile.pokeb:present.name ask — @nathan confirmed pokeb:present is not a valid block. Still need: mirror tile.pokeb:findable_block.name into the other 6 locales (this key stays).
nathan marked this conversation as resolved
Add findable block locale strings
Some checks failed
Model Preview / model-preview (pull_request) Successful in 12s
CI / build-and-test (20.x) (pull_request) Failing after 18s
2d87388840
Update multiple locale files to add the new Findable Block name and fix the reward error message formatting to include a proper newline. This keeps the new block entry and error text consistent across supported languages.
bot requested changes 2026-09-09 21:58:42 +00:00
bot left a comment

Re-review of head 2d873888406eef ("Add findable block locale strings"). Prior REQUEST_CHANGES#2847 on 41132feb is stale. mergeable=true.

Fixed since last review

  • Bare Error: %s folded into message.rewards.grantError in all 7 locales (not just en_US).
  • tile.pokeb:findable_block.name now present in all 7 locales.

Still blocking

  1. Still no tile.pokeb:present.name in any locale. Test plan places pokeb:present — inventory/hotbar will show the raw id if that block is player-visible. Add it in all 7 locales.
  2. blocks.json still has only pokeb:findable_block (sound stone). Add a pokeb:present sound row if it is a distinct block id.

Nit (non-blocking): the 6 non-en_US locales use the English Findable Block / grantError strings — fine for key presence; translate later if you care.

Assets otherwise still line up. Not merge-ready until the present tile name (and sound row if distinct) land.

Re-review of head `2d873888406eef` ("Add findable block locale strings"). Prior REQUEST_CHANGES#2847 on `41132feb` is stale. mergeable=true. **Fixed since last review** - Bare `Error: %s` folded into `message.rewards.grantError` in all 7 locales (not just `en_US`). - `tile.pokeb:findable_block.name` now present in all 7 locales. **Still blocking** 1. Still no `tile.pokeb:present.name` in any locale. Test plan places `pokeb:present` — inventory/hotbar will show the raw id if that block is player-visible. Add it in all 7 locales. 2. `blocks.json` still has only `pokeb:findable_block` (sound `stone`). Add a `pokeb:present` sound row if it is a distinct block id. Nit (non-blocking): the 6 non-`en_US` locales use the English `Findable Block` / grantError strings — fine for key presence; translate later if you care. Assets otherwise still line up. Not merge-ready until the present tile name (and sound row if distinct) land.
@ -429,6 +429,9 @@
"pokeb:yago_berry_plant": {
"sound": "grass"
},
"pokeb:findable_block": {
Member

pokeb:findable_block sound row is here; still no pokeb:present. If present is a distinct block id (test plan), add a matching sound entry.

`pokeb:findable_block` sound row is here; still no `pokeb:present`. If present is a distinct block id (test plan), add a matching sound entry.
Member

pokeb:present doesnt exist

`pokeb:present` doesnt exist
@ -38,2 +38,4 @@
item.pokeb:box_of_chocolate=Box Of Chocolate
## Findable Blocks
tile.pokeb:findable_block.name=Findable Block
Member

Still missing tile.pokeb:present.name next to this. Test plan places pokeb:present — add the tile name in all 7 locales or inventory/hotbar shows the raw id.

Still missing `tile.pokeb:present.name` next to this. Test plan places `pokeb:present` — add the tile name in all 7 locales or inventory/hotbar shows the raw id.
Member

pokeb:present doesnt exist

`pokeb:present` doesnt exist
nathan merged commit e906936bd2 into main 2026-09-09 22:06:47 +00:00
nathan deleted branch feature/findable-blocks 2026-09-09 22:06:47 +00:00
Sign in to join this conversation.
No reviewers
bot
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pokebedrock/pokebedrock-res!4
No description provided.