Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa162ff3ee | ||
|
|
1db17ed64e |
@@ -0,0 +1,143 @@
|
|||||||
|
# Decocraft Pack Template
|
||||||
|
|
||||||
|
Universal addon pack for Decocraft. No Java code needed.
|
||||||
|
Single jar works on both NeoForge and Fabric.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
1. Clone this repo
|
||||||
|
2. Edit `gradle.properties` - change `mod_id`, `mod_name`, `mod_description`, `mod_authors`
|
||||||
|
3. Edit `settings.gradle` - change `rootProject.name`
|
||||||
|
4. Rename `src/main/resources/assets/decocraft/mypack.json` to your pack name
|
||||||
|
5. Update `decocraft.json` to point to your renamed file and `groups.json`
|
||||||
|
6. Edit `groups.json` to define your creative tabs
|
||||||
|
7. Add your content (see below)
|
||||||
|
8. `./gradlew build` - jar goes to `build/libs/`
|
||||||
|
|
||||||
|
The output jar contains both `fabric.mod.json` and `META-INF/neoforge.mods.toml`,
|
||||||
|
so it loads on either mod loader without separate builds.
|
||||||
|
|
||||||
|
## File Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
assets/decocraft/
|
||||||
|
decocraft.json - manifest: lists groups.json + your content files
|
||||||
|
groups.json - creative tab definitions
|
||||||
|
mypack.json - block/item definitions
|
||||||
|
models/bbmodel/{model}.bbmodel - BlockBench 3D models
|
||||||
|
textures/block/{material}.png - block textures
|
||||||
|
textures/item/{material}.png - item/inventory textures
|
||||||
|
lang/en_us.json - display names + tab labels
|
||||||
|
```
|
||||||
|
|
||||||
|
All assets go under the `decocraft` namespace.
|
||||||
|
|
||||||
|
Blockstates, block models, item models, item definitions, and loot tables
|
||||||
|
are all generated dynamically at runtime by the main Decocraft mod.
|
||||||
|
You do NOT need to create these files.
|
||||||
|
|
||||||
|
## Per Block Checklist
|
||||||
|
|
||||||
|
For each block you add, you need:
|
||||||
|
|
||||||
|
| File | Purpose |
|
||||||
|
|------|---------|
|
||||||
|
| `mypack.json` | Entry in the `models` array |
|
||||||
|
| `models/bbmodel/{model}.bbmodel` | BlockBench 3D model |
|
||||||
|
| `textures/block/{material}.png` | Block texture |
|
||||||
|
| `textures/item/{material}.png` | Item texture |
|
||||||
|
| `lang/en_us.json` | `"block.decocraft.{decoref}": "Display Name"` |
|
||||||
|
|
||||||
|
That is it. Everything else is handled automatically.
|
||||||
|
|
||||||
|
## Manifest (decocraft.json)
|
||||||
|
|
||||||
|
Simple array listing files to load. Include `groups.json` first:
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
"groups.json",
|
||||||
|
"mypack.json"
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Decocraft merges manifests from all jars, so your pack's files are loaded
|
||||||
|
alongside the base decocraft files.
|
||||||
|
|
||||||
|
## Creative Tabs (groups.json)
|
||||||
|
|
||||||
|
Declare tabs with a translation key and icon block:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"my_tab": { "label": "itemGroup.decocraft.my_tab", "icon": "some_block_id" }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Then add the display name in `lang/en_us.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"itemGroup.decocraft.my_tab": "Decocraft - My Tab"
|
||||||
|
```
|
||||||
|
|
||||||
|
The `icon` must match a block's `decoref` from your content JSON. Tabs from
|
||||||
|
all packs are merged. If the base decocraft already defines a tab key, your
|
||||||
|
blocks will appear in that existing tab.
|
||||||
|
|
||||||
|
## Content JSON Entry
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "Display Name",
|
||||||
|
"model": "bbmodel_filename_without_extension",
|
||||||
|
"material": "texture_name",
|
||||||
|
"scale": 1.0,
|
||||||
|
"tabs": "your_tab_name",
|
||||||
|
"crafting_color": [50.0, 50.0, 50.0],
|
||||||
|
"decoref": "unique_block_id"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Types
|
||||||
|
|
||||||
|
| type | behavior |
|
||||||
|
|------|----------|
|
||||||
|
| (empty/omitted) | Basic decoration block (default) |
|
||||||
|
| `"underlayer"` | Wall/floor mounted virtual overlay (paintings, carpets) |
|
||||||
|
| `"animated"` | Block with keyframe animations |
|
||||||
|
| `"rotatable"` | Block that places at 45 degree increments |
|
||||||
|
| `"bed"` | Sleepable bed |
|
||||||
|
| `"seat"` | Sittable block |
|
||||||
|
| `"chain"` | Chain/rope connector |
|
||||||
|
|
||||||
|
### Optional Fields
|
||||||
|
|
||||||
|
- `"hidden": true` - registered but not in creative tabs
|
||||||
|
- `"transparency": true` - translucent rendering
|
||||||
|
- `"passable": true` - no collision
|
||||||
|
- `"loot": "other_decoref"` - override what drops when broken
|
||||||
|
- `"flipbook": {"frametime": 4, "images": 6}` - animated texture
|
||||||
|
- `"script"` - tool_modelswitch, on_use, sounds, particles, etc.
|
||||||
|
|
||||||
|
### Model Switching (cycle variants with decobrush)
|
||||||
|
|
||||||
|
```json
|
||||||
|
"script": {
|
||||||
|
"tool_modelswitch": {
|
||||||
|
"link": "next_variant_id"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Chain the last variant back to the first to create a cycle.
|
||||||
|
|
||||||
|
## Full Documentation
|
||||||
|
|
||||||
|
See `json_documentation.md` in the main Decocraft mod for the complete
|
||||||
|
field reference with examples of every block type.
|
||||||
|
|
||||||
|
## Version Compatibility
|
||||||
|
|
||||||
|
Version ranges are open ended, so the pack works with any Decocraft 4.0+
|
||||||
|
on Minecraft 26.1+. Bump `decocraft_version` in `gradle.properties` if you
|
||||||
|
use features from a newer decocraft release.
|
||||||
@@ -10,14 +10,14 @@ minecraft_version_range=[26.1,)
|
|||||||
neoforge_loader_range=[4,)
|
neoforge_loader_range=[4,)
|
||||||
fabric_loader_version=0.18.2
|
fabric_loader_version=0.18.2
|
||||||
|
|
||||||
## Mod Properties
|
## Mod Properties - CHANGE THESE for your pack
|
||||||
mod_id=decocraft_pets
|
mod_id=decocraft_mypack
|
||||||
mod_name=Decocraft Pets Addon
|
mod_name=Decocraft My Pack
|
||||||
mod_license=All Rights Reserved
|
mod_license=All Rights Reserved
|
||||||
mod_version=1.0.0
|
mod_version=1.0.0
|
||||||
mod_group_id=com.razz.decocraft.pride
|
mod_group_id=com.razz.decocraft.mypack
|
||||||
mod_authors=Momo, Razz, ProfMobius, CiciHoneyBee
|
mod_authors=YourName
|
||||||
mod_description=Adds pet decorations to Decocraft
|
mod_description=Adds new decorations to Decocraft
|
||||||
|
|
||||||
# Decocraft minimum version
|
# Decocraft minimum version
|
||||||
decocraft_version=3.0.7
|
decocraft_version=3.0.7
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright © 2015 the original authors.
|
# Copyright © 2015-2021 the original authors.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ plugins {
|
|||||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.0'
|
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = 'decocraft-pets'
|
rootProject.name = 'decocraft-mypack'
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[
|
[
|
||||||
"groups.json",
|
"groups.json",
|
||||||
"pets.json"
|
"mypack.json"
|
||||||
]
|
]
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"pets": { "label": "itemGroup.decocraft.pets", "icon": "pet_carrier" }
|
"mypack": { "label": "itemGroup.decocraft.mypack", "icon": "example_block" }
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"itemGroup.decocraft.mypack": "Decocraft - My Pack",
|
||||||
|
"block.decocraft.example_block": "Example Block",
|
||||||
|
"item.decocraft.example_block": "Example Block"
|
||||||
|
}
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"meta":{"format_version":"4.5","model_format":"bedrock","box_uv":false},"name":"bone","model_identifier":"bone","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"bedrock_animation_mode":"entity","timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":8,"height":8},"elements":[{"name":"main","box_uv":false,"rescale":false,"locked":false,"from":[-2,0,-0.699999988079071],"to":[2,1,0.699999988079071],"autouv":0,"color":6,"origin":[0,0.5,0],"faces":{"north":{"uv":[0,4,4,5],"texture":0},"east":{"uv":[4,1,5.5,2],"texture":0},"south":{"uv":[4,0,8,1],"texture":0},"west":{"uv":[4,2,5.5,3],"texture":0},"up":{"uv":[4,1.5,0,0],"texture":0},"down":{"uv":[4,2,0,3.5],"texture":0}},"type":"cube","uuid":"41fd633c-24f9-c289-490d-414b6972bade"},{"name":"side","box_uv":false,"rescale":false,"locked":false,"from":[-1.200000023841858,0.025000000000000005,-0.5],"to":[2.3841857823306377e-8,1.025,0.5],"autouv":0,"color":3,"origin":[-1.5,0.5,0],"faces":{"north":{"uv":[4,3,5,4],"texture":0},"east":{"uv":[4,4,5,5],"texture":0},"south":{"uv":[0,5,1,6],"texture":0},"west":{"uv":[1,5,2,6],"texture":0},"up":{"uv":[3,6,2,5],"texture":0},"down":{"uv":[4,5,3,6],"texture":0}},"type":"cube","uuid":"c5f08e0b-974c-9c63-99fc-e9ccdb124e21"},{"name":"side","box_uv":false,"rescale":false,"locked":false,"from":[-1.200000262260437,0.025,-0.49999988079071045],"to":[-2.145767212807396e-7,1.025,0.5000001192092896],"autouv":0,"color":5,"rotation":[180,79.9999553271856,180],"origin":[-1.500000238418579,0.5,1.1920928955078125e-7],"faces":{"north":{"uv":[5,3,6,4],"texture":0},"east":{"uv":[4,5,5,6],"texture":0},"south":{"uv":[5,4,6,5],"texture":0},"west":{"uv":[5,5,6,6],"texture":0},"up":{"uv":[1,7,0,6],"texture":0},"down":{"uv":[2,6,1,7],"texture":0}},"type":"cube","uuid":"c2e472bd-6f86-58a6-ccc2-fc4d456952e0"},{"name":"side","box_uv":false,"rescale":false,"locked":false,"from":[-2.3841857823306377e-8,0.025000000000000005,-0.5],"to":[1.200000023841858,1.025,0.5],"autouv":0,"color":3,"origin":[1.5,0.5,0],"faces":{"north":{"uv":[6,1,7,2],"texture":0},"east":{"uv":[2,6,3,7],"texture":0},"south":{"uv":[6,2,7,3],"texture":0},"west":{"uv":[3,6,4,7],"texture":0},"up":{"uv":[7,4,6,3],"texture":0},"down":{"uv":[5,6,4,7],"texture":0}},"type":"cube","uuid":"08585ae0-8adf-fbf4-5799-82b099364c04"},{"name":"side","box_uv":false,"rescale":false,"locked":false,"from":[2.145767212807396e-7,0.025,-0.49999988079071045],"to":[1.200000262260437,1.025,0.5000001192092896],"autouv":0,"color":5,"rotation":[180,-79.9999553271856,-180],"origin":[1.500000238418579,0.5,1.1920928955078125e-7],"faces":{"north":{"uv":[6,4,7,5],"texture":0},"east":{"uv":[5,6,6,7],"texture":0},"south":{"uv":[6,5,7,6],"texture":0},"west":{"uv":[6,6,7,7],"texture":0},"up":{"uv":[1,8,0,7],"texture":0},"down":{"uv":[2,7,1,8],"texture":0}},"type":"cube","uuid":"a3703ae9-d01e-6659-fec1-d4beb0fec92f"}],"outliner":[{"name":"main","origin":[0,0.5,0],"bedrock_binding":"","color":0,"uuid":"04d5e99e-446c-9978-7971-80c899714bc0","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["41fd633c-24f9-c289-490d-414b6972bade",{"name":"side","origin":[-1.5,0.5,0],"rotation":[180,50.00000354180433,180],"bedrock_binding":"","color":0,"uuid":"13777018-45de-d185-2352-69d6fc1201cc","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["c5f08e0b-974c-9c63-99fc-e9ccdb124e21","c2e472bd-6f86-58a6-ccc2-fc4d456952e0"]},{"name":"side2","origin":[1.5,0.5,0],"rotation":[180,-50.00000354180433,-180],"bedrock_binding":"","color":0,"uuid":"e45c76a8-1fe9-46aa-b498-da672dc53a1e","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["08585ae0-8adf-fbf4-5799-82b099364c04","a3703ae9-d01e-6659-fec1-d4beb0fec92f"]}]}],"textures":[{"path":"C:\\Users\\Razz\\Desktop\\Decocraft 3.0.0\\DecoUpdate\\DONE\\AAAAA\\pets\\bone.png","name":"bone.png","folder":"block","namespace":"","id":"0","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"b749eec6-7627-1552-f5ae-30d418d0b95c","relative_path":"../bone.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAXtJREFUOE+NU7FOAkEQnZVoogT17jCeXiEJBWKljR9gp19h6SdZ+glW2hlLY6E2ghdjQqHJEbnD06BEhDNvllkBD3GK292Z3Tdv375T1bOjhPphu4syNaPlrlIYPA3lX4KY18XNDVKf0aUB+HWaiG4vrihrZYdKrWbLrBlAZXJpZzmXdN9MbcbeNg0xR4E/f8UgQxwK/FNm7JZ2NcD1yaG5wihVbCiUSkMMOnGV908vlDWAII5jYS85FD2HhBEM6vfnDNDrNAliTgRw3ALrIC+R99Z1L6UoerybrAE6Jr0Peo0afE6uBOG7X7F+xnGvgM5SExbigfLOvtYAAM3wPVUCy5kjqQkL8cDW3oEGEFUHu6EQBrW+D9o8Oq7H48NNhR1ofCCqohsjZnIsGpRHjN4dzlwprv34oF45TuD3mu/TvJ3n55IAmDCRPBggjAYAQCKOtWVFZTBQU7OEuyMEAAwQRgOICFTLW+aCWDRV1ZSkkt+53dZiCfJ/Ab4BuYPFLBbPhAAAAAAASUVORK5CYII="}]}
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"models": [
|
||||||
|
{
|
||||||
|
"name": "Example Block",
|
||||||
|
"model": "example_block",
|
||||||
|
"material": "example_block",
|
||||||
|
"scale": 1.0,
|
||||||
|
"tabs": "mypack",
|
||||||
|
"crafting_color": [50.0, 50.0, 50.0],
|
||||||
|
"decoref": "example_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 430 B |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 942 B |
|
Before Width: | Height: | Size: 939 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 383 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |