Skip to content

Commit

Permalink
Update instructions, add Terms of Use (#10)
Browse files Browse the repository at this point in the history
- Update instructions in README.md with new images, showing a house made by kizoku246 I found on Structura Lab: https://structuralab.com/08422b16-76a4-4d46-9af1-cbea3fd2696f/item3.html
- Add structure block button adder resource pack since bud-aj29 took theirs down. (This one is better anyway!)
- Add a very barebones Terms of Use file
  • Loading branch information
SuperLlama88888 authored Nov 17, 2024
1 parent 43af9b8 commit 1afa8c5
Show file tree
Hide file tree
Showing 22 changed files with 136 additions and 44 deletions.
72 changes: 28 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,40 @@
# HoloPrint
## Minecraft Bedrock Build Tool

<img src="assets/logo_288.png" width="200" alt="HoloPrint logo"/>
![HoloPrint](assets/banner.png)

### About
HoloPrint is a web app that converts MCBE structure files into resource packs showing holograms of builds. It builds off the work of [Structura](https://github.com/RavinMaddHatter/Structura), a similar project. Both Structura and HoloPrint aim to recreate the experience of Java Edition mods like [Litematica](https://github.com/maruohon/litematica) and [Schematica](https://github.com/Lunatrius/Schematica) for Bedrock Edition users through resource packs.

### Usage
> [!NOTE]
> On Android the Structure Block export button is hidden; please use [this pack](https://github.com/bud-aj29/BE_Structure_Export_Import_Show/releases/download/release_v0.0.1/Structure_Export_Import_Show_v0.0.1.Resource.mcpack) by [bud-aj29](https://github.com/bud-aj29) to add it back.
1. Use a Structure Block to export a `.mcstructure` file. To get a structure block, run the command `/give @s structure_block`.
2. Go to [https://superllama88888.github.io/holoprint](https://superllama88888.github.io/holoprint), select your `.mstructure` file, and tweak settings.
3. Generate and download your resource pack (`.mcpack`).
4. Apply your resource pack and place an armour stand in your world.

![Placing armour stand](https://github.com/user-attachments/assets/facfde59-7ff9-4381-8f35-0815cf3072a9)

#### Player controls
> On Android the Structure Block export button is hidden; please use [this pack](assets/structureBlockButtonAdderPack.mcpack) to add it back.
1. Use a Structure Block to export a `.mcstructure` file. To get a structure block, run the command `/give @s structure_block`.
![Give Structure Block command](assets/giveStructureBlockCommand.png)
![Structure Block exporting](assets/structureBlockExporting.png)
2. Go to [https://superllama88888.github.io/holoprint](https://superllama88888.github.io/holoprint), select your `.mstructure` file, and tweak settings.
![Pack generation screen](assets/packGenerationScreen.png)
3. Generate and download your resource pack (`.mcpack`).
![Resource pack active](assets/resourcePackActive.png)
4. Apply your resource pack and place an armour stand in your world.
![Placing armour stand](assets/placingArmourStand.gif)

### Hologram controls
- Toggle rendering: Stone
![Toggling rendering](https://github.com/user-attachments/assets/b48a931b-1d36-4b3d-8719-5ccf47411b79)
![Toggling rendering](assets/togglingRendering.gif)
- Change transparency: Glass (sneak to decrease, stand to increase)
![Changing transparency](https://github.com/user-attachments/assets/edee3e05-f2d9-4085-8fdf-f6f435d0f0e6)
![Changing transparency](assets/changingTransparency.gif)
- Change layer: Planks (sneak to decrease, stand to increase), or changing the pose on the armor stand
![Changing layer](https://github.com/user-attachments/assets/ee6b848d-e25a-4fbf-b2ab-91867460fdd6)
![Changing layer](assets/changingLayer.gif)
- Move hologram (third person only): Stick
![Moving hologram](https://github.com/user-attachments/assets/9c986653-a128-45d4-830b-4397ba783800)
- Block validation: Iron ingot

https://github.com/user-attachments/assets/8c6a25db-9637-454f-97d7-f324e78580e8
![Moving hologram](assets/movingHologram.gif)
- Block validation: Iron ingot
![Validating structure](assets/validatingStructure.gif)
- Material list: Tab button (keyboard), book icon (touch)
![Material list](assets/materialList.gif)
- Armour stand controls: Give item or hit
![Armour stand controls](assets/armourStandControls.gif)
> [!WARNING]
> Player controls may be unreliable, but armour stand controls will always work.
Special thanks to **kizoku246** for the house in these images!

---

Expand All @@ -53,27 +60,4 @@ https://github.com/user-attachments/assets/8c6a25db-9637-454f-97d7-f324e78580e8
- [JSZip](https://github.com/Stuk/jszip): Pack zipping
- [bridge-model-viewer](https://github.com/bridge-core/model-viewer) and [three.js](https://github.com/mrdoob/three.js): Preview rendering
- [strip-json-comments](https://github.com/sindresorhus/strip-json-comments): Removes comments from JSON files

### Block entity data needed
- Banner: rendering texture
- Bed: colour
- Campfire/soul campfire: items being cooked
- Cauldron: water colour, potion content
- Chest: double chests, inventory
- Crafter: inventory
- Decorated pot: sherd faces, inventory
- Dispenser/dropper: inventory
- Enchantment table: book rotation?!?!?!
- Flower pot: block inside the pot
- Furnace: inventory
- Hopper: inventory
- Item frame: item inside, rotation
- Jukebox: inventory (disc inside)
- Lectern: showing book or not
- Mob spawner: mob inside
- Moving block: none? this is a wacky one
- Nether reactor: active or not (documentation on this is poor)
- Piston: pushing progress?????? I reckon if it's currently pushing/pulling we make it finish to avoid confusion
- Shulker box: facing direction, inventory
- Sign/hanging sign: text
- Skull: skull type, rotation for when on floor
- [deepmerge](https://github.com/TehShrike/deepmerge): Merges JSON files
22 changes: 22 additions & 0 deletions TERMS_OF_USE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# HoloPrint Terms of Use
Thanks for using HoloPrint! Please read the following Terms of Use. They are effective as of November 17, 2024.

## 1. Created packs
All packs created are licensed under the [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en) license. In short, you're not allowed to sell packs created using HoloPrint, or put them behind ads. These restrictions only apply to created packs directly.

Some examples of what is and isn't allowed:
- ✅ Writing a blog post tutorial explaining how to use HoloPrint
- ✅ Showing packs created with HoloPrint in a YouTube video
- ❌ Limiting access to packs created with HoloPrint with monetised link shorteners like Linkvertise
- ❌ Forcing people to either wait to download a pack created with HoloPrint or buy a subscription

If you have any questions regarding acceptable use, please feel free to reach out in our [GitHub Discussions](https://github.com/SuperLlama88888/holoprint/discussions).

## 2. Analytics
HoloPrint does **not** record any analytics except for the first 4 bytes of the SHA-256 hashes of structure files used in pack creation. Basically, this is a unique identifier for each file that **cannot** be used to find out the original file. This is used to see how many people are using HoloPrint. Daily statistics are recorded in [the holoprint-stats repository](https://github.com/SuperLlama88888/holoprint-stats), and the code to record structure file usage is in [the `supabase` folder](https://github.com/SuperLlama88888/holoprint/tree/main/supabase).

HoloPrint uses **no** cookies, and the only data stored on your browser is cached resource pack resources, which speeds up pack creation. Resource pack cache can be cleared with the _Resource packs -> Clear resource pack cache_ button.

For transparency, here is all the data stored for analytics:

![Structure hashes table](assets/structureHashesTable.png)
Binary file added assets/armourStandControls.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/changingLayer.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/changingTransparency.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/giveStructureBlockCommand.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/materialList.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/movingHologram.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/packGenerationScreen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/placingArmourStand.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/resourcePackActive.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/structureBlockButtonAdderPack.mcpack
Binary file not shown.
17 changes: 17 additions & 0 deletions assets/structureBlockButtonAdderPack/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"format_version": 2,
"header": {
"name": "Structure Block Button Adder",
"description": "Forces all Structure Block buttons to show, regardless of device.",
"uuid": "f26d494e-5ab1-4436-b8cb-94482ad1e6b0",
"version": [1, 0, 0],
"min_engine_version": [1, 16, 0]
},
"modules": [
{
"type": "resources",
"uuid": "f3f76c0f-c4f6-4f27-b0a6-8882362b2543",
"version": [1, 0, 0]
}
]
}
Binary file added assets/structureBlockButtonAdderPack/pack_icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"namespace": "structure_editor",
"button_panel_wrapper/panel/save_panel": {
"ignored": false
},
"button_panel_wrapper/panel/save_panel_no_export": {
"ignored": true
},
"button_panel_wrapper/panel/corner_panel": {
"ignored": false
},
"button_panel_wrapper/panel/load_panel_no_export": {
"ignored": true
},
"button_panel_wrapper/panel/load_panel": {
"ignored": false
},
"button_panel_wrapper/panel/3d_export_panel": {
"ignored": false
},
"button_panel_wrapper/panel/data_panel": { // this mode is a
"ignored": false
},
"mode_dropdown_content": { // Data and 3D export modes are conditionally ignored, so the entire thing must be redefined
"$radio_buttons": [
{
"structure_save_mode@settings_common.radio_with_label": {
"$toggle_state_binding_name": "#structure_save_mode",
"$radio_label_text|default": "structure_block.mode.save"
}
},
{
"structure_load_mode@settings_common.radio_with_label": {
"$toggle_state_binding_name": "#structure_load_mode",
"$radio_label_text|default": "structure_block.mode.load"
}
},
{
"structure_data_mode@settings_common.radio_with_label": {
"$toggle_state_binding_name": "#structure_data_mode",
"$radio_label_text": "structure_block.mode.data"
}
},
{
"structure_corner_mode@settings_common.radio_with_label": {
"$toggle_state_binding_name": "#structure_corner_mode",
"$radio_label_text": "structure_block.mode.corner"
}
},
{
"structure_3d_export_mode@settings_common.radio_with_label": {
"$toggle_state_binding_name": "#structure_3d_export_mode",
"$radio_label_text": "structure_block.mode.export"
}
}
]
},
"scroll_panel_content/content_stack_panel/3d_export_mode_panel": {
"ignored": false
},
"scroll_panel_content/content_stack_panel/data_mode_panel": {
"ignored": false
}
}
Binary file added assets/structureBlockExporting.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/structureHashesTable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/togglingRendering.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/validatingStructure.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions index.css
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@ input[type="checkbox"] {
font-size: 1.4em;
font-weight: 500;
}
#termsOfUseNotice {
display: block;
text-align: center;
}
img, canvas {
display: inline-block;
width: 400px;
Expand Down
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ <h1>HoloPrint</h1>
</fieldset>
</div>
<button name="submit" id="generatePackButton">Generate pack</button>
<small id="termsOfUseNotice">By generating a pack with HoloPrint, you agree to the <a href="https://github.com/SuperLlama88888/holoprint/blob/main/TERMS_OF_USE.md" target="_blank">Terms of Use</a>. (It's really short!)</small>
</fieldset>
<div id="previewCont"></div>
<div id="log"></div>
Expand Down

0 comments on commit 1afa8c5

Please sign in to comment.