Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
RavinMaddHatter committed Aug 21, 2024
2 parents c3f6aea + 514e3a0 commit 96e2396
Show file tree
Hide file tree
Showing 10 changed files with 66 additions and 15 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build Structura
run-name: Build Structura
on:
push:
branches:
- main
workflow_dispatch:
jobs:
Build:
runs-on: windows-latest
permissions: write-all
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
- name: Bundle application
run: |
pip install -r requirements.txt -U pyinstaller
pyinstaller --clean --onefile structura.py
move LICENSE dist/LICENSE
tree /f
- name: Upload as artifact
uses: actions/upload-artifact@v4
with:
name: Structura
path: dist
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,5 +65,11 @@ As of structura 1.3 you can update the blocks manuall and contribut back to the
[Here is a write up on how this works](docs/Editing%20Blocks.md)


## Contributing

[![GitHub repo Good Issues for newbies](https://img.shields.io/github/issues/RavinMaddHatter/Structura/good%20first%20issue?style=flat&logo=github&logoColor=green&label=Good%20First%20issues)](https://github.com/RavinMaddHatter/Structura/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) [![GitHub Help Wanted issues](https://img.shields.io/github/issues/RavinMaddHatter/Structura/help%20wanted?style=flat&logo=github&logoColor=b545d1&label=%22Help%20Wanted%22%20issues)](https://github.com/RavinMaddHatter/Structura/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) [![GitHub Help Wanted PRs](https://img.shields.io/github/issues-pr/RavinMaddHatter/Structura/help%20wanted?style=flat&logo=github&logoColor=b545d1&label=%22Help%20Wanted%22%20PRs)](https://github.com/RavinMaddHatter/Structura/pulls?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) [![GitHub repo Issues](https://img.shields.io/github/issues/RavinMaddHatter/Structura?style=flat&logo=github&logoColor=red&label=Issues)](https://github.com/RavinMaddHatter/Structura/issues?q=is%3Aopen)

👋 **Welcome, new contributors!**

Whether you're a seasoned developer or just getting started, your contributions are valuable to us. Don't hesitate to jump in, explore the project, and make an impact. To start contributing, please check out our [Contribution Guidelines](CONTRIBUTING.md).

4 changes: 4 additions & 0 deletions Vanilla_Resource_Pack/blocks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2054,6 +2054,10 @@
"sound": "wood",
"textures": "jungle_sign"
},
"jungle_planks": {
"sound": "wood",
"textures": "jungle_planks"
},
"kelp": {
"sound": "grass",
"textures": {
Expand Down
4 changes: 4 additions & 0 deletions Vanilla_Resource_Pack/blocks19-83.json
Original file line number Diff line number Diff line change
Expand Up @@ -1694,6 +1694,10 @@
"sound": "wood",
"textures": "jungle_sign"
},
"jungle_planks": {
"sound": "wood",
"textures": "jungle_planks"
},
"kelp": {
"sound": "grass",
"textures": {
Expand Down
4 changes: 4 additions & 0 deletions Vanilla_Resource_Pack/blocks20-0.json
Original file line number Diff line number Diff line change
Expand Up @@ -2033,6 +2033,10 @@
"sound" : "wood",
"textures" : "jungle_sign"
},
"jungle_planks": {
"sound": "wood",
"textures": "jungle_planks"
},
"kelp" : {
"sound" : "grass",
"textures" : {
Expand Down
4 changes: 4 additions & 0 deletions Vanilla_Resource_Pack/blocks_new.json
Original file line number Diff line number Diff line change
Expand Up @@ -1754,6 +1754,10 @@
"sound" : "wood",
"textures" : "jungle_sign"
},
"jungle_planks": {
"sound": "wood",
"textures": "jungle_planks"
},
"kelp" : {
"sound" : "grass",
"textures" : {
Expand Down
22 changes: 11 additions & 11 deletions docs/Editing Blocks.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# How to edit blocks for Structura
This page covers the process of editing a block to add support. This is broken into sections of adding support for rotation, changing the shape of a of a block, editing the textures for the block. This was added in Structura 1.3.
This page covers the process of editing a block to add support. This is broken into sections of adding support for rotation, changing the shape of a block, and editing the textures for the block. This was added in Structura 1.3.
## find the block common name
Blocks that contain the same type but different names are linked in the file lookups/block_definitions.json. This allows several blocks to use the same type of rotations, block shape, and texture layout. These are strings, the entry name is as minecraft calls it internally, the value is a string that can be wahtever the writer wants it to be. however this needs to match exactly the entries in the other files.
Blocks that contain the same type but different names are linked in the file lookups/block_definitions.json. This allows several blocks to use the same type of rotations, block shape, and texture layout. These are strings, the entry name is as minecraft calls it internally, the value is a string that can be whatever the writer wants it to be. however this needs to match exactly the entries in the other files.

## block roations
The most common edit required is the rotation definition. The block rotation is contained in lookups/block_rotation.json. To support a common group of blocks you add an entry to the block_rotations.json matching the common name from the block_defintions.json. This entry must contain a dictionary with a key for each rotation state. All keys are strings in this document. The rotation states must contain a list of 3 numbers that denote the rotations around the X, Y, Z respectively.
The most common edit required is the rotation definition. The block rotation is contained in lookups/block_rotation.json. To support a common group of blocks you add an entry to the block_rotations.json matching the common name from the block_definitions.json. This entry must contain a dictionary with a key for each rotation state. All keys are strings in this document. The rotation states must contain a list of 3 numbers that denote the rotations around the X, Y, Z respectively.
### Example:
```json
"repeater": {
Expand All @@ -15,17 +15,17 @@ The most common edit required is the rotation definition. The block rotation is
},
```
## Block Shapes
The second most frequently edited item is the lookups/block_shapes.json. This file defines the physical dimientions of the block as well as where it is located internally if needed. Again this is based upon "Common names" to prevent duplicated code. Common names can be looked up in the block_definitions.json file. each common name contains a dictionary, where each entry is a block state if needed, and each block state is a dictionary of sizes, and block centers. The block center is where the rotation is applied from the rotations function.
The second most frequently edited item is the lookups/block_shapes.json. This file defines the physical dimensions of the block as well as where it is located internally if needed. Again this is based upon "Common names" to prevent duplicated code. Common names can be looked up in the block_definitions.json file. each common name contains a dictionary, where each entry is a block state if needed, and each block state is a dictionary of sizes, and block centers. The block center is where the rotation is applied from the rotations function.
### Block states
Block additions are supported in the python code. This needs to be moved out to become data drive, however this work has not been comlpleted yet.
Block additions are supported in the python code. This needs to be moved out to become data driven, however this work has not been completed yet.

Each block state must have a dictionary containting a size entry and a center entry. it may also contain an "offsets" entry
Each block state must have a dictionary containing a size entry and a center entry. it may also contain an "offsets" entry
### size
Each size entry must be an array of arrays, Each sub array must contain 3 number representing the X, Y, Z dimentions of the compoent in question. The units are in percentage of full blocks, Each size entry must have at least 1 set of dimentions, but may optionally have many more cubes as the maker desires.
Each size entry must be an array of arrays, Each sub array must contain 3 numbers representing the X, Y, Z dimensions of the component in question. The units are in percentage of full blocks, Each size entry must have at least 1 set of dimensions, but may optionally have many more cubes as the maker desires.
### Center
Each block state must contain 1 center definition, this is a array of 3 numbers. these number define where in the X, Y, Z that the rotation will be applied.
### Offsets (optional)
Each offset entry must be an array of arrays, each sub array must have 3 numbers to repersent an X, Y, Z offset in precentage of a full block. There must be 1 entry here for each size in the size entry
Each offset entry must be an array of arrays, each sub array must have 3 numbers to represent an X, Y, Z offset in percentage of a full block. There must be 1 entry here for each size in the size entry
### Example
```json
"repeater":{"default":{
Expand All @@ -36,11 +36,11 @@ Each offset entry must be an array of arrays, each sub array must have 3 numbers
"3":{"size":[[1,0.125,1],[0.1875,0.4375,0.1875],[0.1875,0.4375,0.1875]],"offsets":[[0,0,0],[0.4125,0,0.7125],[0.4125,0,0.125]],"center":[0.5,0.5,0.5]}},
```
## Block UV definitions
For a small portion of blocks the UV defintions must be changed. To do this you must change the common name entry in lookups/block_uv.json. Like the shape file, this is a dictionary of block states. if there is not a block state to represent the one in the file a default blcok state is chosen.
For a small portion of blocks the UV definitions must be changed. To do this you must change the common name entry in lookups/block_uv.json. Like the shape file, this is a dictionary of block states. if there is not a block state to represent the one in the file a default block state is chosen.
### block states
Block additions are supported in the python code. This needs to be moved out to become data drive, however this work has not been comlpleted yet.
Block additions are supported in the python code. This needs to be moved out to become data drive, however this work has not been completed yet.

Each block state must have a dictionary containting a uv_sizes entry and a offset entry. it may also contain an "overwrite" entry.
Each block state must have a dictionary containing a uv_sizes entry and a offset entry. it may also contain an "overwrite" entry.
### uv_sizes
UV sizes must contain 6 entries, one for each directions ("up", "down", "north", "south", "east", "west"). These must contain a UV for each shape defined in the size in the block_shapes.json. Each direction must contain an array of arrays. The sub array needs to have 2 numbers, the size in the X, and Y. The size is the percentage of the texture size.
### offset
Expand Down
1 change: 1 addition & 0 deletions lookups/block_definition.json
Original file line number Diff line number Diff line change
Expand Up @@ -1096,6 +1096,7 @@
"jungle_wood":"cube",
"jungle_leaves":"cube",
"jungle_log":"tree",
"jungle_planks": "cube",
"acacia_log":"tree",
"stripped_acacia_wood":"tree",
"acacia_leaves":"cube",
Expand Down
11 changes: 7 additions & 4 deletions lookups/material_list_names.json
Original file line number Diff line number Diff line change
Expand Up @@ -867,7 +867,7 @@
"default": "Stripped Cherry Wood"
},
"minecraft:bamboo_hanging_sign": {
"default": "Bamboo Hanging Signs"
"default": "Bamboo Hanging Sign"
},
"minecraft:bamboo_fence_gate": {
"default": "Bamboo Fence Gate"
Expand Down Expand Up @@ -1754,6 +1754,9 @@
"minecraft:jungle_pressure_plate": {
"default": "Jungle PRessure Plate"
},
"minecraft:jungle_planks": {
"default": "Jungle Planks"
},
"minecraft:acacia_trapdoor": {
"default": "Acacia Trapdoor"
},
Expand Down Expand Up @@ -1793,7 +1796,7 @@
"minecraft:dark_oak_button": {
"default": "Dark Oak Button"
},
"minecraft:darkoak_standing_sign": {
"minecraft:dark_oak_standing_sign": {
"default": "Dark Oak Sign"
},
"minecraft:dark_oak_log": {
Expand Down Expand Up @@ -3043,10 +3046,10 @@
"default": "Chiseled Bookshelf"
},
"minecraft:bamboo_wall_sign":{
"default": "Bamboo Hanging Sign"
"default": "Bamboo Sign"
},
"minecraft:cherry_wall_sign":{
"default": "Cherry Hanging Sign"
"default": "Cherry Sign"
},
"minecraft:brewing_stand":{
"default": "Brewing Stand"
Expand Down
Binary file modified requirements.txt
Binary file not shown.

0 comments on commit 96e2396

Please sign in to comment.