chore: M0 项目骨架(年糕历险记)——配置/日志/主循环/数据文件/构建脚本
This commit is contained in:
44
.cursorrules
Normal file
44
.cursorrules
Normal file
@@ -0,0 +1,44 @@
|
||||
# MC 项目规则(Cursor)
|
||||
|
||||
项目:用 Go 实现的类 Minecraft 体素沙盒游戏。
|
||||
|
||||
在回答任何与本仓库代码 / 设计相关的问题前,必须:
|
||||
|
||||
1. 先读取 `文档/索引.md`(书签式目录),按 §7 决策树定位文档;
|
||||
2. 通读对应文档后再生成代码或建议;
|
||||
3. 涉及协议 / 存档格式 / Mod API / 场景算法的改动,要求先更新文档并登记索引;
|
||||
4. 遵循 `文档/开发规范.md`(Go 风格、错误处理、并发、Conventional Commits)。
|
||||
|
||||
## 主题 → 文档映射
|
||||
|
||||
| 主题 | 文档 |
|
||||
| --- | --- |
|
||||
| Chunk / 异步生成 / 锁 | 文档/场景/区块管理.md |
|
||||
| 地形 / 噪声 / 洞穴 | 文档/场景/世界生成.md |
|
||||
| 生物群系 / 树 / 随机刻 / 液体 | 文档/场景/世界生态.md |
|
||||
| 渲染 / mesh / 图集 / GL / 光影 | 文档/场景/渲染.md |
|
||||
| 材质包 / 光影包 / 内容包 | 文档/设计.md §1.3、文档/场景/渲染.md §9 |
|
||||
| 热更新 / 热重载 | 文档/场景/热更新.md |
|
||||
| 光照 / 火把 | 文档/场景/光照.md |
|
||||
| 物理 / 碰撞 / 移动 | 文档/场景/物理与碰撞.md |
|
||||
| 方块交互 / 破坏 / 耐久 / crack | 文档/场景/方块交互与动画.md |
|
||||
| 红石 / 活塞 / 方块更新 | 文档/场景/红石与方块更新.md |
|
||||
| 实体 / AI / 掉落物 | 文档/场景/实体系统.md |
|
||||
| 物品 / 背包 / 配方 / 容器 | 文档/场景/物品与背包.md |
|
||||
| 工作台 / 合成表 | 文档/场景/工作台与合成表.md |
|
||||
| 挖矿 / 矿物 | 文档/场景/挖矿与矿物.md |
|
||||
| 动物 / 繁殖 / 驯服 | 文档/场景/动物体系.md |
|
||||
| 村庄 / 村民 / 建造 | 文档/场景/村民系统.md |
|
||||
| 僵尸 / 敌对生物 | 文档/场景/僵尸与敌对生物.md |
|
||||
| UI / 拖拽 / 输入 | 文档/场景/UI与输入.md |
|
||||
| UI 一比一还原 / 界面布局 | 文档/场景/UI还原.md |
|
||||
| 音频 | 文档/场景/音频.md |
|
||||
| 多人同步 / 防作弊 | 文档/场景/多人同步.md、文档/网络协议.md |
|
||||
| 存档 / 持久化 | 文档/场景/存档与持久化.md、文档/存档格式.md |
|
||||
| 性能 / GC / pprof | 文档/场景/性能与内存.md |
|
||||
| 网络 / 多人 | 文档/网络协议.md |
|
||||
| Mod | 文档/Mod开发指南.md |
|
||||
| 测试 / CI | 文档/测试与质量.md |
|
||||
| 构建 / 发布 | 文档/构建与发布.md |
|
||||
| 编码规范 | 文档/开发规范.md |
|
||||
| 规划 | 文档/路线图.md |
|
||||
39
.github/copilot-instructions.md
vendored
Normal file
39
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# GitHub Copilot 指令
|
||||
|
||||
本仓库为 Go 项目(类 Minecraft 体素沙盒游戏)。生成或修改代码前:
|
||||
|
||||
1. 先读取 `文档/索引.md`(书签式目录)确定相关文档;
|
||||
2. 遵循 `文档/开发规范.md`(命名、错误处理、并发、Git 提交格式);
|
||||
3. 协议 / 存档格式 / Mod API / 场景算法变更必须同步更新对应文档与索引;
|
||||
4. 目录结构遵循 `文档/设计.md` §1.1,不要臆造结构。
|
||||
|
||||
## 主题速查
|
||||
|
||||
- Chunk / 异步生成:文档/场景/区块管理.md
|
||||
- 地形 / 噪声:文档/场景/世界生成.md
|
||||
- 生物群系 / 生态:文档/场景/世界生态.md
|
||||
- 渲染 / 光影:文档/场景/渲染.md
|
||||
- 材质包 / 光影包 / 内容包:文档/设计.md §1.3、文档/场景/渲染.md §9
|
||||
- 热更新 / 热重载:文档/场景/热更新.md
|
||||
- 光照 / 火把:文档/场景/光照.md
|
||||
- 物理 / 碰撞:文档/场景/物理与碰撞.md
|
||||
- 方块交互 / 破坏 / 耐久:文档/场景/方块交互与动画.md
|
||||
- 红石 / 活塞:文档/场景/红石与方块更新.md
|
||||
- 实体 / AI:文档/场景/实体系统.md
|
||||
- 物品 / 背包 / 配方:文档/场景/物品与背包.md
|
||||
- 工作台 / 合成表:文档/场景/工作台与合成表.md
|
||||
- 挖矿 / 矿物:文档/场景/挖矿与矿物.md
|
||||
- 动物 / 繁殖:文档/场景/动物体系.md
|
||||
- 村庄 / 村民 / 建造:文档/场景/村民系统.md
|
||||
- 僵尸 / 敌对生物:文档/场景/僵尸与敌对生物.md
|
||||
- UI / 输入:文档/场景/UI与输入.md
|
||||
- UI 一比一还原:文档/场景/UI还原.md
|
||||
- 音频:文档/场景/音频.md
|
||||
- 多人同步:文档/场景/多人同步.md、文档/网络协议.md
|
||||
- 存档 / 持久化:文档/场景/存档与持久化.md、文档/存档格式.md
|
||||
- 性能 / GC:文档/场景/性能与内存.md
|
||||
- 网络:文档/网络协议.md
|
||||
- Mod:文档/Mod开发指南.md
|
||||
- 测试:文档/测试与质量.md
|
||||
- 构建 / 发布:文档/构建与发布.md
|
||||
- 路线图:文档/路线图.md
|
||||
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
bin/
|
||||
cache/
|
||||
worlds/
|
||||
logs/
|
||||
tools/mingw64/
|
||||
*.exe
|
||||
*.tmp
|
||||
*.log
|
||||
10
.idea/.gitignore
generated
vendored
Normal file
10
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# 基于编辑器的 HTTP 客户端请求
|
||||
/httpRequests/
|
||||
# 已忽略包含查询文件的默认文件夹
|
||||
/queries/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
10
.idea/go.imports.xml
generated
Normal file
10
.idea/go.imports.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GoImports">
|
||||
<option name="excludedPackages">
|
||||
<array>
|
||||
<option value="golang.org/x/net/context" />
|
||||
</array>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
9
.idea/mc.iml
generated
Normal file
9
.idea/mc.iml
generated
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/mc.iml" filepath="$PROJECT_DIR$/.idea/mc.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
60
CLAUDE.md
Normal file
60
CLAUDE.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# MC 项目规则(Claude Code)
|
||||
|
||||
本文件约束 AI 助手在本仓库中的行为。
|
||||
项目:用 Go 实现的类 Minecraft 体素沙盒游戏(可扩展、可 Mod)。
|
||||
|
||||
## 第一原则:先查文档,再动手
|
||||
|
||||
1. 任何任务开始前,先读 `文档/索引.md`(全部文档的唯一入口,书签式目录)。
|
||||
2. 按索引 §7「决策树」定位相关文档,**通读后再实现**。
|
||||
3. 文档与代码冲突时以文档为准;发现文档过时,先修文档再改代码。
|
||||
|
||||
## 文档速查(按任务定位)
|
||||
|
||||
| 任务类型 | 必读文档 |
|
||||
| --- | --- |
|
||||
| Chunk 数据结构 / 异步生成 / 锁 | 文档/场景/区块管理.md |
|
||||
| 地形 / 噪声 / 洞穴 / 矿物 | 文档/场景/世界生成.md |
|
||||
| 生物群系 / 树 / 随机刻 / 液体 | 文档/场景/世界生态.md |
|
||||
| 渲染 / mesh / 图集 / GL 线程 / 光影包 | 文档/场景/渲染.md |
|
||||
| 材质包 / 光影包 / 内容包格式 / 默认回退 | 文档/设计.md §1.3、文档/场景/渲染.md §9 |
|
||||
| 热更新 / 热重载 / 脚本引擎 / plugin | 文档/场景/热更新.md、文档/设计.md §3.4 |
|
||||
| 光照 / 火把 / relight | 文档/场景/光照.md |
|
||||
| 物理 / 碰撞 / 移动 | 文档/场景/物理与碰撞.md |
|
||||
| 方块交互 / 破坏 / 耐久 / crack | 文档/场景/方块交互与动画.md |
|
||||
| 红石 / 活塞 / 方块更新 | 文档/场景/红石与方块更新.md |
|
||||
| 实体 / AI / 寻路 / 掉落物 | 文档/场景/实体系统.md |
|
||||
| 物品 / 背包 / 配方 / 容器 | 文档/场景/物品与背包.md |
|
||||
| 工作台 / 合成表 / 配方匹配 | 文档/场景/工作台与合成表.md |
|
||||
| 挖矿 / 矿物 / 工具门槛 / 附魔 | 文档/场景/挖矿与矿物.md |
|
||||
| 动物 / 繁殖 / 驯服 | 文档/场景/动物体系.md |
|
||||
| 村庄 / 村民 / 建造房子 / 交易 | 文档/场景/村民系统.md |
|
||||
| 僵尸 / 敌对生物 / 村庄围攻 | 文档/场景/僵尸与敌对生物.md |
|
||||
| UI / 拖拽 / 多语言 / 输入 | 文档/场景/UI与输入.md |
|
||||
| UI 一比一还原 / 原版界面布局 | 文档/场景/UI还原.md |
|
||||
| 音频 / 3D 音效 | 文档/场景/音频.md |
|
||||
| 多人同步 / 防作弊 | 文档/场景/多人同步.md、文档/网络协议.md |
|
||||
| 存档 / 持久化 / diff | 文档/场景/存档与持久化.md、文档/存档格式.md |
|
||||
| 性能 / GC / pprof | 文档/场景/性能与内存.md |
|
||||
| 网络 / 多人 | 文档/网络协议.md、文档/设计.md §10 |
|
||||
| Mod | 文档/Mod开发指南.md、文档/设计.md §3 |
|
||||
| 测试 / CI | 文档/测试与质量.md |
|
||||
| 构建 / 发布 | 文档/构建与发布.md |
|
||||
| 编码风格 / Git / 评审 | 文档/开发规范.md |
|
||||
| 规划 / 里程碑 | 文档/路线图.md |
|
||||
|
||||
## 硬性规则
|
||||
|
||||
- 协议、存档格式、Mod API、场景算法等**规范类改动:先更新对应文档,再改代码**,并登记到 `文档/索引.md`。
|
||||
- 新增文档必须登记到 `文档/索引.md`(对应层 + 主题索引 + 阅读路径 + 决策树)。
|
||||
- 遵循 Go 编码规范(文档/开发规范.md):错误带上下文、无 goroutine 泄漏、`gofmt`/`go vet` 零告警。
|
||||
- 提交信息使用 Conventional Commits(如 `feat(world): ...`、`fix(chunk): ...`)。
|
||||
- 禁止臆造项目不存在的目录 / 文件结构;以 文档/设计.md §1.1 为准。
|
||||
- 场景专篇引用用相对链接(`光照.md`),引总纲用 `../设计.md`。
|
||||
|
||||
## 常用命令
|
||||
|
||||
- 测试:`go test -race ./...`
|
||||
- Lint:`go vet ./...`、`golangci-lint run`
|
||||
- 基准:`go test -bench=. -benchmem ./...`
|
||||
- 性能:`go tool pprof http://localhost:6060/debug/pprof/heap`(仅 debug 构建)
|
||||
20
Makefile
Normal file
20
Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
# 年糕历险记 Makefile(开发用;Windows 安装包用 scripts/build.ps1)
|
||||
.PHONY: run-client run-server build vet test clean
|
||||
|
||||
run-client:
|
||||
go run -tags dev ./cmd/client
|
||||
|
||||
run-server:
|
||||
go run ./cmd/server
|
||||
|
||||
build:
|
||||
go build ./...
|
||||
|
||||
vet:
|
||||
go vet ./...
|
||||
|
||||
test:
|
||||
go test -race ./...
|
||||
|
||||
clean:
|
||||
rm -rf bin
|
||||
108
README.md
Normal file
108
README.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 年糕历险记(NianGao Adventure)— Go 体素沙盒(类 Minecraft)
|
||||
|
||||
一个用 Go 实现的可扩展、可 Mod 的类 Minecraft 体素沙盒游戏。
|
||||
游戏名 / 窗口标题 / 安装包统一使用中文名 **年糕历险记**(Windows 安装包为 NSIS 中文安装,见 [构建与发布.md](文档/构建与发布.md) §8)。
|
||||
|
||||
## 状态
|
||||
|
||||
项目处于**设计/规划阶段**,仓库当前仅包含开发文档。
|
||||
代码骨架将在路线图 [M0 里程碑](文档/路线图.md) 落地。
|
||||
|
||||
## 文档中心
|
||||
|
||||
所有开发文档统一存放于 [`文档/`](文档/) 目录,**入口为 [`文档/索引.md`](文档/索引.md)**(书签式目录,含决策树,AI 助手先读它)。
|
||||
|
||||
### 第一层:总纲
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [设计.md](文档/设计.md) | 总体设计规范、素材库位置、Mod 加载、无限世界、易遗漏功能检查表 |
|
||||
| [架构.md](文档/架构.md) | 分层架构、模块依赖、并发模型、核心数据流 |
|
||||
| [开发规范.md](文档/开发规范.md) | Go 编码规范、Git 工作流、评审清单、ADR |
|
||||
|
||||
### 第二层:场景专篇(核心开发手册,共 20 篇)
|
||||
|
||||
**数据层**
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [区块管理.md](文档/场景/区块管理.md) | Chunk 数据结构、生命周期状态机、异步生成流水线、锁与并发 |
|
||||
| [世界生成.md](文档/场景/世界生成.md) | 噪声选型、确定性地形、生成管线、跨区块安全 |
|
||||
| [世界生态.md](文档/场景/世界生态.md) | 生物群系、树/植被/矿物后处理、随机刻、液体流动 |
|
||||
|
||||
**表现层**
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [渲染.md](文档/场景/渲染.md) | GL 线程亲和、mesh 策略(face culling / greedy)、纹理图集、透明排序、默认光影系统与光影包替换 |
|
||||
| [光照.md](文档/场景/光照.md) | 天空光+方块光、BFS 传播、光源移除 relight、火把跨区块 |
|
||||
| [音频.md](文档/场景/音频.md) | 3D 音效衰减、声源上限、分类音量、音频库线程 |
|
||||
|
||||
**交互层**
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [物理与碰撞.md](文档/场景/物理与碰撞.md) | AABB 逐轴解算、移动模式、非立方体碰撞、实体推挤 |
|
||||
| [方块交互与动画.md](文档/场景/方块交互与动画.md) | DDA 射线拾取、破坏进度、方块耐久、crack 动画、放置、方块状态 |
|
||||
| [红石与方块更新.md](文档/场景/红石与方块更新.md) | 延迟更新队列、迭代上限、红石信号、活塞推动 |
|
||||
|
||||
**玩法层**
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [实体系统.md](文档/场景/实体系统.md) | 实体生命周期、AI 与限频寻路、自然生成、掉落物 |
|
||||
| [物品与背包.md](文档/场景/物品与背包.md) | 物品栈、背包规则表、配方索引、工具耐久、容器方块实体 |
|
||||
| [UI与输入.md](文档/场景/UI与输入.md) | UI 渲染架构、拖拽/Shift 状态机、多语言、键位与鼠标 |
|
||||
| [UI还原.md](文档/场景/UI还原.md) | **客户端 UI 一比一还原原版**:界面清单、像素级布局规格、字体/纹理、截图验收 |
|
||||
| [村民系统.md](文档/场景/村民系统.md) | 村庄生成、职业村民日程 AI、**程序化建造房子**(特色)、交易 |
|
||||
| [工作台与合成表.md](文档/场景/工作台与合成表.md) | 3×3 合成网格、配方索引匹配、tag 展开、批量合成、防刷 |
|
||||
| [挖矿与矿物.md](文档/场景/挖矿与矿物.md) | 矿物深度分布、工具门槛、速度公式、掉落/烧炼/附魔、矿洞照明 |
|
||||
| [动物体系.md](文档/场景/动物体系.md) | 动物行为 AI、繁殖与数量控制、剪羊毛/牛奶/蛋、驯服骑乘 |
|
||||
| [僵尸与敌对生物.md](文档/场景/僵尸与敌对生物.md) | 敌对生物样板:AI 状态机、攻击模型、白天燃烧、村庄围攻 |
|
||||
|
||||
**网络层 / 稳定层**
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [多人同步.md](文档/场景/多人同步.md) | 服务器权威、实体插值、区块流限流、防作弊细化 |
|
||||
| [存档与持久化.md](文档/场景/存档与持久化.md) | 保存时机、diff-only、异步保存池、原子写入、迁移 |
|
||||
| [性能与内存.md](文档/场景/性能与内存.md) | Go GC 坑、对象池、锁粒度、channel 边界、pprof 流程 |
|
||||
| [热更新.md](文档/场景/热更新.md) | Mod/素材/光影不重启热更新:分层矩阵、generation 版本化、原子切换与回滚 |
|
||||
|
||||
### 第三层:协议与格式
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [网络协议.md](文档/网络协议.md) | 帧格式、消息目录、序列化规则、同步与防作弊 |
|
||||
| [存档格式.md](文档/存档格式.md) | level.dat、region、chunk 序列化、压缩、迁移 |
|
||||
| [Mod开发指南.md](文档/Mod开发指南.md) | Mod 结构、manifest、Lua API、权限沙箱 |
|
||||
|
||||
### 第四层:流程与治理
|
||||
|
||||
| 文档 | 主题 |
|
||||
| --- | --- |
|
||||
| [测试与质量.md](文档/测试与质量.md) | 单测/集成/基准、race/fuzz、CI、质量门禁 |
|
||||
| [构建与发布.md](文档/构建与发布.md) | 构建、go:embed、交叉编译、版本、发布清单 |
|
||||
| [路线图.md](文档/路线图.md) | 里程碑 M0–M6、验收标准 |
|
||||
|
||||
> 新增或修改文档后,必须同步更新 [`文档/索引.md`](文档/索引.md)。
|
||||
|
||||
## AI 助手规则
|
||||
|
||||
仓库根目录提供面向 AI 编码助手的规则文件,统一引导助手先查文档索引、遵循开发规范再动手:
|
||||
|
||||
- [`CLAUDE.md`](CLAUDE.md) — Claude Code
|
||||
- [`.cursorrules`](.cursorrules) — Cursor
|
||||
- [`.github/copilot-instructions.md`](.github/copilot-instructions.md) — GitHub Copilot
|
||||
|
||||
## 目录规划
|
||||
|
||||
遵循 [设计.md](文档/设计.md) 第 1 节:`cmd/`、`internal/`、`assets/`、`mods/`、`resourcepacks/`、`worlds/`、`config/`、`logs/` 等。
|
||||
|
||||
## 素材包 / 光影包怎么放(内容包统一格式)
|
||||
|
||||
素材包、光影包与功能 Mod 共用同一套内容包格式(manifest + `type`,见 [设计.md](文档/设计.md) §1.3),**统一投放到 [`mods/`](mods/README.md)**:
|
||||
|
||||
- **素材包**(`type: "resource"`)覆盖默认材质;支持**原生 Minecraft 格式**(pack.mcmeta + assets/…)直接放置;默认素材包已在 [`resourcepacks/texture-pack-default1.20.5-26.2/`](resourcepacks/README.md)。
|
||||
- **光影包**(`type: "shader"`)覆盖着色管线;**不下载光影包也没关系——未安装时使用系统默认光影**(内置,见 [渲染.md](文档/场景/渲染.md) §9)。
|
||||
- **初版材质**:随客户端 `go:embed` 嵌入,无素材包时生效。
|
||||
35
assets/config/blocks.json
Normal file
35
assets/config/blocks.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"blocks": {
|
||||
"stone": { "id": 1, "hardness": 1.5, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/stone" } },
|
||||
"granite": { "id": 2, "hardness": 1.5, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/granite" } },
|
||||
"diorite": { "id": 3, "hardness": 1.5, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/diorite" } },
|
||||
"andesite": { "id": 4, "hardness": 1.5, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/andesite" } },
|
||||
"grass_block": { "id": 5, "hardness": 0.6, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "up": "block/grass_block_top", "down": "block/dirt", "side": "block/grass_block_side" } },
|
||||
"dirt": { "id": 6, "hardness": 0.5, "resistance": 2.5, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/dirt" } },
|
||||
"cobblestone": { "id": 7, "hardness": 2.0, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/cobblestone" } },
|
||||
"oak_planks": { "id": 8, "hardness": 2.0, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/oak_planks" } },
|
||||
"bedrock": { "id": 9, "hardness": -1.0, "resistance": 3600000, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/bedrock" } },
|
||||
"sand": { "id": 10, "hardness": 0.5, "resistance": 2.5, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/sand" } },
|
||||
"gravel": { "id": 11, "hardness": 0.6, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/gravel" } },
|
||||
"oak_log": { "id": 12, "hardness": 2.0, "resistance": 2.0, "light": 0, "transparent": false, "solid": true, "textures": { "up": "block/oak_log_top", "down": "block/oak_log_top", "side": "block/oak_log" } },
|
||||
"oak_leaves": { "id": 13, "hardness": 0.2, "resistance": 1.0, "light": 0, "transparent": true, "solid": true, "textures": { "all": "block/oak_leaves" }, "cutout": true },
|
||||
"glass": { "id": 14, "hardness": 0.3, "resistance": 1.5, "light": 0, "transparent": true, "solid": true, "textures": { "all": "block/glass" }, "cutout": true },
|
||||
"water": { "id": 15, "hardness": 100.0, "resistance": 500.0, "light": 0, "transparent": true, "solid": false, "textures": { "all": "block/water_still" }, "translucent": true, "fluid": true },
|
||||
"lava": { "id": 16, "hardness": 100.0, "resistance": 500.0, "light": 15, "transparent": true, "solid": false, "textures": { "all": "block/lava_still" }, "translucent": true, "fluid": true },
|
||||
"torch": { "id": 17, "hardness": 0.0, "resistance": 0.0, "light": 14, "transparent": true, "solid": false, "textures": { "all": "block/torch" }, "cutout": true },
|
||||
"crafting_table":{ "id": 18, "hardness": 2.5, "resistance": 2.5, "light": 0, "transparent": false, "solid": true, "textures": { "up": "block/crafting_table_top", "down": "block/oak_planks", "side": "block/crafting_table_side" } },
|
||||
"furnace": { "id": 19, "hardness": 3.5, "resistance": 3.5, "light": 0, "transparent": false, "solid": true, "textures": { "up": "block/furnace_top", "down": "block/furnace_top", "side": "block/furnace_side", "front": "block/furnace_front" } },
|
||||
"coal_ore": { "id": 20, "hardness": 3.0, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/coal_ore" }, "drops": "coal", "required_tier": 1 },
|
||||
"iron_ore": { "id": 21, "hardness": 3.0, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/iron_ore" }, "required_tier": 2 },
|
||||
"gold_ore": { "id": 22, "hardness": 3.0, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/gold_ore" }, "required_tier": 3 },
|
||||
"diamond_ore": { "id": 23, "hardness": 3.0, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/diamond_ore" }, "drops": "diamond", "required_tier": 3 },
|
||||
"redstone_ore": { "id": 24, "hardness": 3.0, "resistance": 3.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/redstone_ore" }, "drops": "redstone", "required_tier": 3 },
|
||||
"iron_block": { "id": 25, "hardness": 5.0, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/iron_block" } },
|
||||
"gold_block": { "id": 26, "hardness": 3.0, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/gold_block" } },
|
||||
"diamond_block": { "id": 27, "hardness": 5.0, "resistance": 6.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/diamond_block" } },
|
||||
"snow_block": { "id": 28, "hardness": 0.2, "resistance": 1.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/snow" } },
|
||||
"ice": { "id": 29, "hardness": 0.5, "resistance": 2.5, "light": 0, "transparent": true, "solid": true, "textures": { "all": "block/ice" }, "translucent": true },
|
||||
"obsidian": { "id": 30, "hardness": 50.0, "resistance": 1200.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/obsidian" }, "required_tier": 4 },
|
||||
"white_wool": { "id": 31, "hardness": 0.8, "resistance": 4.0, "light": 0, "transparent": false, "solid": true, "textures": { "all": "block/white_wool" } }
|
||||
}
|
||||
}
|
||||
41
assets/config/items.json
Normal file
41
assets/config/items.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"items": {
|
||||
"stick": { "stack": 64, "texture": "item/stick" },
|
||||
"coal": { "stack": 64, "texture": "item/coal" },
|
||||
"diamond": { "stack": 64, "texture": "item/diamond" },
|
||||
"iron_ingot": { "stack": 64, "texture": "item/iron_ingot" },
|
||||
"gold_ingot": { "stack": 64, "texture": "item/gold_ingot" },
|
||||
"redstone": { "stack": 64, "texture": "item/redstone" },
|
||||
"oak_planks": { "stack": 64, "texture": "block/oak_planks" },
|
||||
"cobblestone": { "stack": 64, "texture": "block/cobblestone" },
|
||||
"crafting_table": { "stack": 64, "texture": "block/crafting_table_top", "place": "crafting_table" },
|
||||
"furnace": { "stack": 64, "texture": "block/furnace_front", "place": "furnace" },
|
||||
"torch": { "stack": 64, "texture": "block/torch", "place": "torch" },
|
||||
"wooden_pickaxe": { "stack": 1, "texture": "item/wooden_pickaxe", "tool": "pickaxe", "tier": 1, "speed": 2.0, "durability": 59 },
|
||||
"stone_pickaxe": { "stack": 1, "texture": "item/stone_pickaxe", "tool": "pickaxe", "tier": 2, "speed": 4.0, "durability": 131 },
|
||||
"iron_pickaxe": { "stack": 1, "texture": "item/iron_pickaxe", "tool": "pickaxe", "tier": 3, "speed": 6.0, "durability": 250 },
|
||||
"diamond_pickaxe": { "stack": 1, "texture": "item/diamond_pickaxe", "tool": "pickaxe", "tier": 4, "speed": 8.0, "durability": 1561 },
|
||||
"wooden_shovel": { "stack": 1, "texture": "item/wooden_shovel", "tool": "shovel", "tier": 1, "speed": 2.0, "durability": 59 },
|
||||
"stone_shovel": { "stack": 1, "texture": "item/stone_shovel", "tool": "shovel", "tier": 2, "speed": 4.0, "durability": 131 },
|
||||
"iron_shovel": { "stack": 1, "texture": "item/iron_shovel", "tool": "shovel", "tier": 3, "speed": 6.0, "durability": 250 },
|
||||
"diamond_shovel": { "stack": 1, "texture": "item/diamond_shovel", "tool": "shovel", "tier": 4, "speed": 8.0, "durability": 1561 },
|
||||
"wooden_axe": { "stack": 1, "texture": "item/wooden_axe", "tool": "axe", "tier": 1, "speed": 2.0, "durability": 59 },
|
||||
"stone_axe": { "stack": 1, "texture": "item/stone_axe", "tool": "axe", "tier": 2, "speed": 4.0, "durability": 131 },
|
||||
"iron_axe": { "stack": 1, "texture": "item/iron_axe", "tool": "axe", "tier": 3, "speed": 6.0, "durability": 250 },
|
||||
"diamond_axe": { "stack": 1, "texture": "item/diamond_axe", "tool": "axe", "tier": 4, "speed": 8.0, "durability": 1561 },
|
||||
"raw_iron": { "stack": 64, "texture": "item/raw_iron" },
|
||||
"raw_gold": { "stack": 64, "texture": "item/raw_gold" },
|
||||
"rotten_flesh": { "stack": 64, "texture": "item/rotten_flesh" },
|
||||
"beef": { "stack": 64, "texture": "item/beef" },
|
||||
"porkchop": { "stack": 64, "texture": "item/porkchop" },
|
||||
"chicken": { "stack": 64, "texture": "item/chicken" },
|
||||
"mutton": { "stack": 64, "texture": "item/mutton" },
|
||||
"leather": { "stack": 64, "texture": "item/leather" },
|
||||
"feather": { "stack": 64, "texture": "item/feather" },
|
||||
"egg": { "stack": 16, "texture": "item/egg" },
|
||||
"white_wool": { "stack": 64, "texture": "block/white_wool", "place": "white_wool" },
|
||||
"wheat_seeds": { "stack": 64, "texture": "item/wheat_seeds" },
|
||||
"wheat": { "stack": 64, "texture": "item/wheat" },
|
||||
"bone": { "stack": 64, "texture": "item/bone" }
|
||||
}
|
||||
}
|
||||
24
assets/config/recipes.json
Normal file
24
assets/config/recipes.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"recipes": [
|
||||
{ "type": "crafting_shapeless", "ingredients": ["oak_log"], "result": { "item": "oak_planks", "count": 4 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["X", "X"], "key": { "X": "oak_planks" }, "result": { "item": "stick", "count": 4 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XX", "XX"], "key": { "X": "oak_planks" }, "result": { "item": "crafting_table", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["X", "Y"], "key": { "X": "coal", "Y": "stick" }, "result": { "item": "torch", "count": 4 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", "X X", "XXX"], "key": { "X": "cobblestone" }, "result": { "item": "furnace", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", " Y ", " Y "], "key": { "X": "oak_planks", "Y": "stick" }, "result": { "item": "wooden_pickaxe", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", " Y ", " Y "], "key": { "X": "cobblestone", "Y": "stick" }, "result": { "item": "stone_pickaxe", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", " Y ", " Y "], "key": { "X": "iron_ingot", "Y": "stick" }, "result": { "item": "iron_pickaxe", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", " Y ", " Y "], "key": { "X": "diamond", "Y": "stick" }, "result": { "item": "diamond_pickaxe", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["X", "Y", "Y"], "key": { "X": "oak_planks", "Y": "stick" }, "result": { "item": "wooden_shovel", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XX", "XY", " Y"], "key": { "X": "oak_planks", "Y": "stick" }, "result": { "item": "wooden_axe", "count": 1 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", "XXX", "XXX"], "key": { "X": "iron_ingot" }, "result": { "item": "iron_block", "count": 1 } },
|
||||
{ "type": "crafting_shapeless", "ingredients": ["iron_block"], "result": { "item": "iron_ingot", "count": 9 } },
|
||||
{ "type": "crafting_shaped", "pattern": ["XXX", "XXX", "XXX"], "key": { "X": "diamond" }, "result": { "item": "diamond_block", "count": 1 } },
|
||||
{ "type": "crafting_shapeless", "ingredients": ["diamond_block"], "result": { "item": "diamond", "count": 9 } },
|
||||
{ "type": "smelting", "input": "iron_ore", "result": { "item": "iron_ingot", "count": 1 } },
|
||||
{ "type": "smelting", "input": "gold_ore", "result": { "item": "gold_ingot", "count": 1 } },
|
||||
{ "type": "smelting", "input": "raw_iron", "result": { "item": "iron_ingot", "count": 1 } },
|
||||
{ "type": "smelting", "input": "raw_gold", "result": { "item": "gold_ingot", "count": 1 } },
|
||||
{ "type": "smelting", "input": "beef", "result": { "item": "beef", "count": 1 } }
|
||||
]
|
||||
}
|
||||
6
cmd/client/dev_dev.go
Normal file
6
cmd/client/dev_dev.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build dev
|
||||
|
||||
package main
|
||||
|
||||
// dev 构建:开发模式默认开启(直接读取 assets/ 目录)。
|
||||
const devDefault = true
|
||||
6
cmd/client/dev_release.go
Normal file
6
cmd/client/dev_release.go
Normal file
@@ -0,0 +1,6 @@
|
||||
//go:build !dev
|
||||
|
||||
package main
|
||||
|
||||
// release 构建:默认关闭开发模式(go:embed 嵌入资源)。
|
||||
const devDefault = false
|
||||
52
cmd/client/main.go
Normal file
52
cmd/client/main.go
Normal file
@@ -0,0 +1,52 @@
|
||||
// 年糕历险记 —— 客户端入口。
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"mc/internal/config"
|
||||
"mc/internal/engine"
|
||||
"mc/internal/logx"
|
||||
)
|
||||
|
||||
var devMode = flag.Bool("dev", devDefault, "开发模式:直接读取 assets/(默认随构建 tag)")
|
||||
|
||||
// clientApp 客户端应用骨架(窗口/渲染在 Todo 4 接入)。
|
||||
type clientApp struct {
|
||||
cfg *config.ClientConfig
|
||||
log *logx.Logger
|
||||
}
|
||||
|
||||
// Tick 每 tick(20Hz)逻辑。
|
||||
func (a *clientApp) Tick(dt float64) {}
|
||||
|
||||
// Render 每帧渲染(占位)。
|
||||
func (a *clientApp) Render() {}
|
||||
|
||||
// ShouldClose 窗口关闭判定(占位)。
|
||||
func (a *clientApp) ShouldClose() bool { return false }
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
log, err := logx.New("logs/client.log", logx.LevelInfo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
cfg, err := config.Load("config/client.yaml", config.DefaultClient())
|
||||
if err != nil {
|
||||
log.Warnf("配置加载失败,使用默认值:%v", err)
|
||||
}
|
||||
log.Infof("%s 客户端启动:%dx%d,语言 %s,视距 %d", cfg.Client.WindowTitle, cfg.Client.WindowWidth, cfg.Client.WindowHeight, cfg.Client.Language, cfg.Client.RenderDistance)
|
||||
|
||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
|
||||
defer stop()
|
||||
|
||||
app := &clientApp{cfg: cfg, log: log}
|
||||
engine.Run(ctx, app, app)
|
||||
log.Infof("客户端已退出")
|
||||
}
|
||||
50
cmd/server/main.go
Normal file
50
cmd/server/main.go
Normal file
@@ -0,0 +1,50 @@
|
||||
// 年糕历险记 —— 专用服务器入口。
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"mc/internal/config"
|
||||
"mc/internal/engine"
|
||||
"mc/internal/logx"
|
||||
)
|
||||
|
||||
// serverApp 服务器应用骨架(世界/网络在后续里程碑接入)。
|
||||
type serverApp struct {
|
||||
cfg *config.ServerConfig
|
||||
log *logx.Logger
|
||||
tickCount uint64
|
||||
}
|
||||
|
||||
// Tick 每 tick(20Hz)服务器逻辑。
|
||||
func (s *serverApp) Tick(dt float64) {
|
||||
s.tickCount++
|
||||
if s.tickCount%100 == 0 { // 每 5 秒
|
||||
s.log.Debugf("tick=%d", s.tickCount)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
log, err := logx.New("logs/server.log", logx.LevelInfo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
cfg, err := config.Load("config/server.yaml", config.DefaultServer())
|
||||
if err != nil {
|
||||
log.Warnf("配置加载失败,使用默认值:%v", err)
|
||||
}
|
||||
log.Infof("年糕历险记 服务器启动:端口 %d,世界 %q,种子 %d,tick 率 %d", cfg.Server.Port, cfg.World.Name, cfg.World.Seed, cfg.Server.TickRate)
|
||||
|
||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
|
||||
defer stop()
|
||||
|
||||
app := &serverApp{cfg: cfg, log: log}
|
||||
engine.Run(ctx, app, engine.NoopRenderer{})
|
||||
log.Infof("服务器已退出")
|
||||
}
|
||||
15
config/client.yaml
Normal file
15
config/client.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
client:
|
||||
window_width: 1280
|
||||
window_height: 720
|
||||
window_title: "年糕历险记"
|
||||
vsync: true
|
||||
fov: 70
|
||||
render_distance: 12
|
||||
language: "zh_cn"
|
||||
graphics:
|
||||
smooth_lighting: true
|
||||
mipmap: true
|
||||
anisotropic: 4
|
||||
audio:
|
||||
volume: 1.0
|
||||
music: true
|
||||
18
config/server.yaml
Normal file
18
config/server.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
server:
|
||||
port: 25565
|
||||
max_players: 20
|
||||
view_distance: 10
|
||||
tick_rate: 20
|
||||
world:
|
||||
seed: 123456789
|
||||
name: "NewWorld"
|
||||
generator:
|
||||
biome_scale: 0.005
|
||||
height_scale: 0.01
|
||||
cave_density: 0.1
|
||||
mods:
|
||||
enabled: true
|
||||
directory: "mods"
|
||||
allow_scripts: true
|
||||
script_timeout_ms: 5
|
||||
hot_reload: false
|
||||
4
go.sum
Normal file
4
go.sum
Normal file
@@ -0,0 +1,4 @@
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
113
internal/config/config.go
Normal file
113
internal/config/config.go
Normal file
@@ -0,0 +1,113 @@
|
||||
// Package config 解析 client.yaml / server.yaml 配置(设计.md §14)。
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
// ClientConfig 客户端配置(设计.md §14.2)。
|
||||
type ClientConfig struct {
|
||||
Client struct {
|
||||
WindowWidth int `yaml:"window_width"`
|
||||
WindowHeight int `yaml:"window_height"`
|
||||
WindowTitle string `yaml:"window_title"`
|
||||
VSync bool `yaml:"vsync"`
|
||||
FOV float64 `yaml:"fov"`
|
||||
RenderDistance int `yaml:"render_distance"`
|
||||
Language string `yaml:"language"`
|
||||
Graphics struct {
|
||||
SmoothLighting bool `yaml:"smooth_lighting"`
|
||||
Mipmap bool `yaml:"mipmap"`
|
||||
Anisotropic int `yaml:"anisotropic"`
|
||||
} `yaml:"graphics"`
|
||||
Audio struct {
|
||||
Volume float64 `yaml:"volume"`
|
||||
Music bool `yaml:"music"`
|
||||
} `yaml:"audio"`
|
||||
} `yaml:"client"`
|
||||
}
|
||||
|
||||
// DefaultClient 客户端默认配置。
|
||||
func DefaultClient() *ClientConfig {
|
||||
c := &ClientConfig{}
|
||||
c.Client.WindowWidth = 1280
|
||||
c.Client.WindowHeight = 720
|
||||
c.Client.WindowTitle = "年糕历险记"
|
||||
c.Client.VSync = true
|
||||
c.Client.FOV = 70
|
||||
c.Client.RenderDistance = 12
|
||||
c.Client.Language = "zh_cn"
|
||||
c.Client.Graphics.SmoothLighting = true
|
||||
c.Client.Graphics.Mipmap = true
|
||||
c.Client.Graphics.Anisotropic = 4
|
||||
c.Client.Audio.Volume = 1.0
|
||||
c.Client.Audio.Music = true
|
||||
return c
|
||||
}
|
||||
|
||||
// ServerConfig 服务器配置(设计.md §14.1)。
|
||||
type ServerConfig struct {
|
||||
Server struct {
|
||||
Port int `yaml:"port"`
|
||||
MaxPlayers int `yaml:"max_players"`
|
||||
ViewDistance int `yaml:"view_distance"`
|
||||
TickRate int `yaml:"tick_rate"`
|
||||
} `yaml:"server"`
|
||||
World struct {
|
||||
Seed int64 `yaml:"seed"`
|
||||
Name string `yaml:"name"`
|
||||
Generator struct {
|
||||
BiomeScale float64 `yaml:"biome_scale"`
|
||||
HeightScale float64 `yaml:"height_scale"`
|
||||
CaveDensity float64 `yaml:"cave_density"`
|
||||
} `yaml:"generator"`
|
||||
} `yaml:"world"`
|
||||
Mods struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Directory string `yaml:"directory"`
|
||||
AllowScripts bool `yaml:"allow_scripts"`
|
||||
ScriptTimeoutMS int `yaml:"script_timeout_ms"`
|
||||
HotReload bool `yaml:"hot_reload"`
|
||||
} `yaml:"mods"`
|
||||
}
|
||||
|
||||
// DefaultServer 服务器默认配置。
|
||||
func DefaultServer() *ServerConfig {
|
||||
c := &ServerConfig{}
|
||||
c.Server.Port = 25565
|
||||
c.Server.MaxPlayers = 20
|
||||
c.Server.ViewDistance = 10
|
||||
c.Server.TickRate = 20
|
||||
c.World.Seed = 123456789
|
||||
c.World.Name = "NewWorld"
|
||||
c.World.Generator.BiomeScale = 0.005
|
||||
c.World.Generator.HeightScale = 0.01
|
||||
c.World.Generator.CaveDensity = 0.1
|
||||
c.Mods.Enabled = true
|
||||
c.Mods.Directory = "mods"
|
||||
c.Mods.AllowScripts = true
|
||||
c.Mods.ScriptTimeoutMS = 5
|
||||
return c
|
||||
}
|
||||
|
||||
// Load 读取 YAML 配置;文件不存在时返回 defaults(零拷贝不可行则回退默认构造)。
|
||||
func Load[T any](path string, defaults *T) (*T, error) {
|
||||
b, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return defaults, nil
|
||||
}
|
||||
return nil, fmt.Errorf("config.Load %s: %w", path, err)
|
||||
}
|
||||
out := new(T)
|
||||
if defaults != nil {
|
||||
*out = *defaults
|
||||
}
|
||||
if err := yaml.Unmarshal(b, out); err != nil {
|
||||
return nil, fmt.Errorf("config.Load %s: %w", path, err)
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
55
internal/engine/loop.go
Normal file
55
internal/engine/loop.go
Normal file
@@ -0,0 +1,55 @@
|
||||
// Package engine 主循环:tick 固定 20Hz、render 吃满帧率、两者解耦(架构.md §3.2)。
|
||||
package engine
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Ticker 世界逻辑接口:每 tick 调用,dt 为固定 tick 间隔秒数。
|
||||
type Ticker interface {
|
||||
Tick(dt float64)
|
||||
}
|
||||
|
||||
// Renderer 渲染接口:每帧调用;ShouldClose 返回 true 时退出循环。
|
||||
type Renderer interface {
|
||||
Render()
|
||||
ShouldClose() bool
|
||||
}
|
||||
|
||||
// NoopRenderer 无渲染占位(服务器),以约 60Hz 空转。
|
||||
type NoopRenderer struct{}
|
||||
|
||||
// Render 空实现。
|
||||
func (NoopRenderer) Render() { time.Sleep(time.Second / 60) }
|
||||
|
||||
// ShouldClose 永不主动关闭。
|
||||
func (NoopRenderer) ShouldClose() bool { return false }
|
||||
|
||||
// Run 主循环:tick goroutine 固定 20Hz;主 goroutine 渲染;ctx 取消或窗口关闭时退出。
|
||||
func Run(ctx context.Context, tick Ticker, render Renderer) {
|
||||
const tickInterval = time.Second / 20
|
||||
stop := make(chan struct{})
|
||||
go func() {
|
||||
t := time.NewTicker(tickInterval)
|
||||
defer t.Stop()
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-stop:
|
||||
return
|
||||
case <-t.C:
|
||||
tick.Tick(tickInterval.Seconds())
|
||||
}
|
||||
}
|
||||
}()
|
||||
defer close(stop)
|
||||
|
||||
for {
|
||||
if ctx.Err() != nil || render.ShouldClose() {
|
||||
return
|
||||
}
|
||||
render.Render()
|
||||
}
|
||||
}
|
||||
81
internal/logx/log.go
Normal file
81
internal/logx/log.go
Normal file
@@ -0,0 +1,81 @@
|
||||
// Package logx 分级日志(debug/info/warn/error),输出 stderr 与可选文件。
|
||||
package logx
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Level 日志级别。
|
||||
type Level int
|
||||
|
||||
const (
|
||||
// LevelDebug 调试。
|
||||
LevelDebug Level = iota
|
||||
// LevelInfo 常规信息。
|
||||
LevelInfo
|
||||
// LevelWarn 警告。
|
||||
LevelWarn
|
||||
// LevelError 错误。
|
||||
LevelError
|
||||
)
|
||||
|
||||
// Logger 线程安全分级日志器。
|
||||
type Logger struct {
|
||||
mu sync.Mutex
|
||||
level Level
|
||||
w io.Writer
|
||||
}
|
||||
|
||||
// New 创建日志器;file 为空仅输出 stderr。
|
||||
func New(file string, level Level) (*Logger, error) {
|
||||
w := io.Writer(os.Stderr)
|
||||
if file != "" {
|
||||
if err := os.MkdirAll(pathDir(file), 0o755); err != nil {
|
||||
return nil, fmt.Errorf("logx.New mkdir: %w", err)
|
||||
}
|
||||
f, err := os.OpenFile(file, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0o644)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("logx.New %s: %w", file, err)
|
||||
}
|
||||
w = io.MultiWriter(os.Stderr, f)
|
||||
}
|
||||
return &Logger{level: level, w: w}, nil
|
||||
}
|
||||
|
||||
// pathDir 返回路径的目录部分("a.log" → ".")。
|
||||
func pathDir(p string) string {
|
||||
for i := len(p) - 1; i >= 0; i-- {
|
||||
if p[i] == '/' || p[i] == '\\' {
|
||||
if i == 0 {
|
||||
return p[:1]
|
||||
}
|
||||
return p[:i]
|
||||
}
|
||||
}
|
||||
return "."
|
||||
}
|
||||
|
||||
func (l *Logger) logf(lv Level, tag, format string, args ...any) {
|
||||
if lv < l.level {
|
||||
return
|
||||
}
|
||||
l.mu.Lock()
|
||||
defer l.mu.Unlock()
|
||||
fmt.Fprintf(l.w, "[%s] [%s] %s\n", time.Now().Format("15:04:05.000"), tag, fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
// Debugf 调试输出。
|
||||
func (l *Logger) Debugf(format string, args ...any) { l.logf(LevelDebug, "DEBUG", format, args...) }
|
||||
|
||||
// Infof 常规输出。
|
||||
func (l *Logger) Infof(format string, args ...any) { l.logf(LevelInfo, "INFO", format, args...) }
|
||||
|
||||
// Warnf 警告输出。
|
||||
func (l *Logger) Warnf(format string, args ...any) { l.logf(LevelWarn, "WARN", format, args...) }
|
||||
|
||||
// Errorf 错误输出。
|
||||
func (l *Logger) Errorf(format string, args ...any) { l.logf(LevelError, "ERROR", format, args...) }
|
||||
65
mods/README.md
Normal file
65
mods/README.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# mods/ — 内容包投放目录(素材包 / 光影包 / Mod)
|
||||
|
||||
> 这是**主投放点**:把你下载好的 **素材包(材质包)**、**光影包**、以及功能 **Mod** 直接放进本目录,
|
||||
> 客户端 / 服务器启动时统一扫描、按 `manifest.json` 的 `type` 字段自动分派。
|
||||
> 完整格式见 [`../文档/设计.md`](../文档/设计.md) §1.3(内容包统一格式)。
|
||||
|
||||
## 怎么放
|
||||
|
||||
1. 把下载的包解压成 `<包名>/` 文件夹,**或直接放 `.zip` 压缩包**;
|
||||
2. 包根目录必须含 `manifest.json`;
|
||||
3. 启动游戏即可(开发模式支持热重载)。
|
||||
|
||||
## 三种包类型(manifest 里写 `type`)
|
||||
|
||||
| type | 用途 | 包内结构 |
|
||||
| --- | --- | --- |
|
||||
| `resource` | 素材包:覆盖默认纹理 / 模型 / 语言 / 音效 | `assets/...` |
|
||||
| `shader` | 光影包:覆盖着色器管线 | `shaders/`(命名与内置一致,见 渲染.md §9) |
|
||||
| `mod` | 功能 Mod:脚本 + 数据 + 注册内容 | `scripts/` `data/` `assets/<ns>/` |
|
||||
|
||||
> 素材包也支持**原生 Minecraft 格式**(`pack.mcmeta` + `assets/<ns>/...`,无需 manifest.json),
|
||||
> 解压或 zip 直接放入即可自动识别;默认素材包示例见 [`../resourcepacks/`](../resourcepacks/README.md)。
|
||||
|
||||
## 素材包示例(`mods/MyPack/manifest.json`)
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "resource",
|
||||
"id": "my_texture_pack",
|
||||
"name": "My Texture Pack",
|
||||
"version": "1.0.0",
|
||||
"api_version": 1,
|
||||
"priority": 0,
|
||||
"resource_namespace": "minecraft",
|
||||
"description": "覆盖默认材质"
|
||||
}
|
||||
```
|
||||
|
||||
## 光影包示例(`mods/MyShaders/manifest.json`)
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "shader",
|
||||
"id": "my_shader_pack",
|
||||
"name": "My Shader Pack",
|
||||
"version": "1.0.0",
|
||||
"api_version": 1,
|
||||
"shaders": {
|
||||
"chunk": "shaders/chunk.vert,shaders/chunk.frag",
|
||||
"water": "shaders/water.vert,shaders/water.frag"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 没放任何包会怎样(默认回退)
|
||||
|
||||
- **没放素材包** → 使用随客户端嵌入的**初版默认材质**(`assets/`,go:embed)。
|
||||
- **没放光影包** → 使用**系统默认光影**(内置 Forward 光照管线,见 `../文档/场景/渲染.md` §9)。
|
||||
- 所以「不下载光影包」完全没问题,游戏自带一套能跑的光影系统。
|
||||
|
||||
## 规则
|
||||
|
||||
- 同类型资源冲突:`priority` 大的优先;相同则后加载者覆盖并告警。
|
||||
- 素材包与光影包互不覆盖:素材包管纹理、光影包管着色阶段,可同时生效。
|
||||
- `resourcepacks/`([../resourcepacks/README.md](../resourcepacks/README.md))为兼容目录,素材包也可放那里。
|
||||
21
resourcepacks/README.md
Normal file
21
resourcepacks/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# resourcepacks/ — 素材包目录
|
||||
|
||||
> 素材包(纹理/模型/语言/音效覆盖)放这里;也接受放到 [`../mods/`](../mods/README.md)(主投放点)。
|
||||
> 格式见 [`../文档/设计.md`](../文档/设计.md) §1.3(内容包统一格式)。
|
||||
|
||||
## 已就位的素材包
|
||||
|
||||
- **`texture-pack-default1.20.5-26.2/`** — 原生 Minecraft 1.20.5 资源包(pack.mcmeta,pack_format 34/46),
|
||||
含 atlases / blockstates(1198)/ models(3928)/ textures / font / lang(en_us) 完整结构。
|
||||
客户端/服务器启动时自动加载,作为默认材质来源(初版材质基线)。
|
||||
|
||||
## 支持两种格式(自动识别)
|
||||
|
||||
1. **原生格式**(推荐,用户下载的包直接放):根目录 `pack.mcmeta` + `assets/<ns>/...`,自动视为素材包,无需转换。
|
||||
2. **扩展格式**(可选):`manifest.json`(`"type": "resource"`,可声明 `priority`),包结构同 Mod 格式。
|
||||
|
||||
## 规则
|
||||
|
||||
- 优先级:`功能 Mod 资源 > 素材包 > 光影包(仅渲染阶段) > 默认嵌入素材`。
|
||||
- 同类型冲突:`priority` 大者优先,相同则后加载者覆盖并告警。
|
||||
- 开发模式支持热重载(改图 → 图集重建 → mesh 重传,见 场景/热更新.md)。
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:paletted_permutations",
|
||||
"palette_key": "minecraft:trims/color_palettes/trim_palette",
|
||||
"permutations": {
|
||||
"amethyst": "minecraft:trims/color_palettes/amethyst",
|
||||
"copper": "minecraft:trims/color_palettes/copper",
|
||||
"copper_darker": "minecraft:trims/color_palettes/copper_darker",
|
||||
"diamond": "minecraft:trims/color_palettes/diamond",
|
||||
"diamond_darker": "minecraft:trims/color_palettes/diamond_darker",
|
||||
"emerald": "minecraft:trims/color_palettes/emerald",
|
||||
"gold": "minecraft:trims/color_palettes/gold",
|
||||
"gold_darker": "minecraft:trims/color_palettes/gold_darker",
|
||||
"iron": "minecraft:trims/color_palettes/iron",
|
||||
"iron_darker": "minecraft:trims/color_palettes/iron_darker",
|
||||
"lapis": "minecraft:trims/color_palettes/lapis",
|
||||
"netherite": "minecraft:trims/color_palettes/netherite",
|
||||
"netherite_darker": "minecraft:trims/color_palettes/netherite_darker",
|
||||
"quartz": "minecraft:trims/color_palettes/quartz",
|
||||
"redstone": "minecraft:trims/color_palettes/redstone",
|
||||
"resin": "minecraft:trims/color_palettes/resin"
|
||||
},
|
||||
"textures": [
|
||||
"minecraft:trims/entity/humanoid/sentry",
|
||||
"minecraft:trims/entity/humanoid_leggings/sentry",
|
||||
"minecraft:trims/entity/humanoid/dune",
|
||||
"minecraft:trims/entity/humanoid_leggings/dune",
|
||||
"minecraft:trims/entity/humanoid/coast",
|
||||
"minecraft:trims/entity/humanoid_leggings/coast",
|
||||
"minecraft:trims/entity/humanoid/wild",
|
||||
"minecraft:trims/entity/humanoid_leggings/wild",
|
||||
"minecraft:trims/entity/humanoid/ward",
|
||||
"minecraft:trims/entity/humanoid_leggings/ward",
|
||||
"minecraft:trims/entity/humanoid/eye",
|
||||
"minecraft:trims/entity/humanoid_leggings/eye",
|
||||
"minecraft:trims/entity/humanoid/vex",
|
||||
"minecraft:trims/entity/humanoid_leggings/vex",
|
||||
"minecraft:trims/entity/humanoid/tide",
|
||||
"minecraft:trims/entity/humanoid_leggings/tide",
|
||||
"minecraft:trims/entity/humanoid/snout",
|
||||
"minecraft:trims/entity/humanoid_leggings/snout",
|
||||
"minecraft:trims/entity/humanoid/rib",
|
||||
"minecraft:trims/entity/humanoid_leggings/rib",
|
||||
"minecraft:trims/entity/humanoid/spire",
|
||||
"minecraft:trims/entity/humanoid_leggings/spire",
|
||||
"minecraft:trims/entity/humanoid/wayfinder",
|
||||
"minecraft:trims/entity/humanoid_leggings/wayfinder",
|
||||
"minecraft:trims/entity/humanoid/shaper",
|
||||
"minecraft:trims/entity/humanoid_leggings/shaper",
|
||||
"minecraft:trims/entity/humanoid/silence",
|
||||
"minecraft:trims/entity/humanoid_leggings/silence",
|
||||
"minecraft:trims/entity/humanoid/raiser",
|
||||
"minecraft:trims/entity/humanoid_leggings/raiser",
|
||||
"minecraft:trims/entity/humanoid/host",
|
||||
"minecraft:trims/entity/humanoid_leggings/host",
|
||||
"minecraft:trims/entity/humanoid/flow",
|
||||
"minecraft:trims/entity/humanoid_leggings/flow",
|
||||
"minecraft:trims/entity/humanoid/bolt",
|
||||
"minecraft:trims/entity/humanoid_leggings/bolt"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/banner/",
|
||||
"source": "entity/banner"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "block/",
|
||||
"source": "block"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/conduit/",
|
||||
"source": "entity/conduit"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:single",
|
||||
"resource": "minecraft:entity/bell/bell_body"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:single",
|
||||
"resource": "minecraft:entity/enchantment/enchanting_table_book"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "environment/celestial"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/chest/",
|
||||
"source": "entity/chest"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/decorated_pot/",
|
||||
"source": "entity/decorated_pot"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "gui/sprites"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "mob_effect/",
|
||||
"source": "mob_effect"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "item/",
|
||||
"source": "item"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:paletted_permutations",
|
||||
"palette_key": "minecraft:trims/color_palettes/trim_palette",
|
||||
"permutations": {
|
||||
"amethyst": "minecraft:trims/color_palettes/amethyst",
|
||||
"copper": "minecraft:trims/color_palettes/copper",
|
||||
"copper_darker": "minecraft:trims/color_palettes/copper_darker",
|
||||
"diamond": "minecraft:trims/color_palettes/diamond",
|
||||
"diamond_darker": "minecraft:trims/color_palettes/diamond_darker",
|
||||
"emerald": "minecraft:trims/color_palettes/emerald",
|
||||
"gold": "minecraft:trims/color_palettes/gold",
|
||||
"gold_darker": "minecraft:trims/color_palettes/gold_darker",
|
||||
"iron": "minecraft:trims/color_palettes/iron",
|
||||
"iron_darker": "minecraft:trims/color_palettes/iron_darker",
|
||||
"lapis": "minecraft:trims/color_palettes/lapis",
|
||||
"netherite": "minecraft:trims/color_palettes/netherite",
|
||||
"netherite_darker": "minecraft:trims/color_palettes/netherite_darker",
|
||||
"quartz": "minecraft:trims/color_palettes/quartz",
|
||||
"redstone": "minecraft:trims/color_palettes/redstone",
|
||||
"resin": "minecraft:trims/color_palettes/resin"
|
||||
},
|
||||
"textures": [
|
||||
"minecraft:trims/items/helmet_trim",
|
||||
"minecraft:trims/items/chestplate_trim",
|
||||
"minecraft:trims/items/leggings_trim",
|
||||
"minecraft:trims/items/boots_trim"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "map/decorations"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "painting"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "",
|
||||
"source": "particle"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/shield/",
|
||||
"source": "entity/shield"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sources": [
|
||||
{
|
||||
"type": "minecraft:directory",
|
||||
"prefix": "entity/shulker/",
|
||||
"source": "entity/shulker"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"variants": {
|
||||
"face=ceiling,facing=east,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"face=ceiling,facing=east,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"face=ceiling,facing=north,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"face=ceiling,facing=north,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"face=ceiling,facing=south,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"x": 180
|
||||
},
|
||||
"face=ceiling,facing=south,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"x": 180
|
||||
},
|
||||
"face=ceiling,facing=west,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"face=ceiling,facing=west,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=east,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=east,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=north,powered=false": {
|
||||
"model": "minecraft:block/acacia_button"
|
||||
},
|
||||
"face=floor,facing=north,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed"
|
||||
},
|
||||
"face=floor,facing=south,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"y": 180
|
||||
},
|
||||
"face=floor,facing=south,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"y": 180
|
||||
},
|
||||
"face=floor,facing=west,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"y": 270
|
||||
},
|
||||
"face=floor,facing=west,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"y": 270
|
||||
},
|
||||
"face=wall,facing=east,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"face=wall,facing=east,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"face=wall,facing=north,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"uvlock": true,
|
||||
"x": 90
|
||||
},
|
||||
"face=wall,facing=north,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90
|
||||
},
|
||||
"face=wall,facing=south,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"face=wall,facing=south,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"face=wall,facing=west,powered=false": {
|
||||
"model": "minecraft:block/acacia_button",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"face=wall,facing=west,powered=true": {
|
||||
"model": "minecraft:block/acacia_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left"
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right"
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_left"
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_left_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_right"
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_right_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left_open"
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_left_open"
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_right_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right_open"
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_left_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_right",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_right_open"
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_left_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_bottom_right_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_left_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/acacia_door_top_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/acacia_door_top_right_open",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_fence_post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_fence_side",
|
||||
"uvlock": true
|
||||
},
|
||||
"when": {
|
||||
"north": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_fence_side",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"east": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_fence_side",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"south": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_fence_side",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"west": "true"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_open",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall_open",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_open",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall_open",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate",
|
||||
"uvlock": true
|
||||
},
|
||||
"facing=south,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_open",
|
||||
"uvlock": true
|
||||
},
|
||||
"facing=south,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall",
|
||||
"uvlock": true
|
||||
},
|
||||
"facing=south,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall_open",
|
||||
"uvlock": true
|
||||
},
|
||||
"facing=west,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_open",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/acacia_fence_gate_wall_open",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"variants": {
|
||||
"attached=false,rotation=0": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_0"
|
||||
},
|
||||
"attached=false,rotation=1": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_1"
|
||||
},
|
||||
"attached=false,rotation=10": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_2",
|
||||
"y": 180
|
||||
},
|
||||
"attached=false,rotation=11": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_3",
|
||||
"y": 180
|
||||
},
|
||||
"attached=false,rotation=12": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_0",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=13": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_1",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=14": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_2",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=15": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_3",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=2": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_2"
|
||||
},
|
||||
"attached=false,rotation=3": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_3"
|
||||
},
|
||||
"attached=false,rotation=4": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_0",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=5": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_1",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=6": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_2",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=7": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_3",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=8": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_0",
|
||||
"y": 180
|
||||
},
|
||||
"attached=false,rotation=9": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_rot_1",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=0": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_0"
|
||||
},
|
||||
"attached=true,rotation=1": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_1"
|
||||
},
|
||||
"attached=true,rotation=10": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_2",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=11": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_3",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=12": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_0",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=13": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_1",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=14": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_2",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=15": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_3",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=2": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_2"
|
||||
},
|
||||
"attached=true,rotation=3": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_3"
|
||||
},
|
||||
"attached=true,rotation=4": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_0",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=5": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_1",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=6": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_2",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=7": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_3",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=8": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_0",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=9": {
|
||||
"model": "minecraft:block/acacia_hanging_sign_attached_rot_1",
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/acacia_leaves"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"variants": {
|
||||
"axis=x": {
|
||||
"model": "minecraft:block/acacia_log_horizontal",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis=y": {
|
||||
"model": "minecraft:block/acacia_log"
|
||||
},
|
||||
"axis=z": {
|
||||
"model": "minecraft:block/acacia_log_horizontal",
|
||||
"x": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/acacia_planks"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"powered=false": {
|
||||
"model": "minecraft:block/acacia_pressure_plate"
|
||||
},
|
||||
"powered=true": {
|
||||
"model": "minecraft:block/acacia_pressure_plate_down"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/acacia_sapling"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,402 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf"
|
||||
},
|
||||
"when": {
|
||||
"facing": "north"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"facing": "east"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"facing": "south"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"facing": "west"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unpowered"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unpowered",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unpowered",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unpowered",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unconnected"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unconnected",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unconnected",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_unconnected",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_left"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_left",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_left",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_left",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_center"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_center",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_center",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_center",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_right"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_right",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_right",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/acacia_shelf_right",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"variants": {
|
||||
"rotation=0": {
|
||||
"model": "minecraft:block/acacia_sign_rot_0"
|
||||
},
|
||||
"rotation=1": {
|
||||
"model": "minecraft:block/acacia_sign_rot_1"
|
||||
},
|
||||
"rotation=10": {
|
||||
"model": "minecraft:block/acacia_sign_rot_2",
|
||||
"y": 180
|
||||
},
|
||||
"rotation=11": {
|
||||
"model": "minecraft:block/acacia_sign_rot_3",
|
||||
"y": 180
|
||||
},
|
||||
"rotation=12": {
|
||||
"model": "minecraft:block/acacia_sign_rot_0",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=13": {
|
||||
"model": "minecraft:block/acacia_sign_rot_1",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=14": {
|
||||
"model": "minecraft:block/acacia_sign_rot_2",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=15": {
|
||||
"model": "minecraft:block/acacia_sign_rot_3",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=2": {
|
||||
"model": "minecraft:block/acacia_sign_rot_2"
|
||||
},
|
||||
"rotation=3": {
|
||||
"model": "minecraft:block/acacia_sign_rot_3"
|
||||
},
|
||||
"rotation=4": {
|
||||
"model": "minecraft:block/acacia_sign_rot_0",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=5": {
|
||||
"model": "minecraft:block/acacia_sign_rot_1",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=6": {
|
||||
"model": "minecraft:block/acacia_sign_rot_2",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=7": {
|
||||
"model": "minecraft:block/acacia_sign_rot_3",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=8": {
|
||||
"model": "minecraft:block/acacia_sign_rot_0",
|
||||
"y": 180
|
||||
},
|
||||
"rotation=9": {
|
||||
"model": "minecraft:block/acacia_sign_rot_1",
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/acacia_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/acacia_planks"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/acacia_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner"
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer"
|
||||
},
|
||||
"facing=east,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs"
|
||||
},
|
||||
"facing=east,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner"
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer"
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/acacia_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/acacia_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=straight": {
|
||||
"model": "minecraft:block/acacia_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=bottom,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_bottom"
|
||||
},
|
||||
"facing=north,half=bottom,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open"
|
||||
},
|
||||
"facing=north,half=top,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_top"
|
||||
},
|
||||
"facing=north,half=top,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=bottom,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=bottom,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"x": 180
|
||||
},
|
||||
"facing=west,half=bottom,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=bottom,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,open=false": {
|
||||
"model": "minecraft:block/acacia_trapdoor_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,open=true": {
|
||||
"model": "minecraft:block/acacia_trapdoor_open",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/acacia_wall_hanging_sign",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/acacia_wall_hanging_sign",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/acacia_wall_hanging_sign"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/acacia_wall_hanging_sign",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/acacia_wall_sign",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/acacia_wall_sign",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/acacia_wall_sign"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/acacia_wall_sign",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"variants": {
|
||||
"axis=x": {
|
||||
"model": "minecraft:block/acacia_wood",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis=y": {
|
||||
"model": "minecraft:block/acacia_wood"
|
||||
},
|
||||
"axis=z": {
|
||||
"model": "minecraft:block/acacia_wood",
|
||||
"x": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"variants": {
|
||||
"powered=false,shape=ascending_east": {
|
||||
"model": "minecraft:block/activator_rail_raised_ne",
|
||||
"y": 90
|
||||
},
|
||||
"powered=false,shape=ascending_north": {
|
||||
"model": "minecraft:block/activator_rail_raised_ne"
|
||||
},
|
||||
"powered=false,shape=ascending_south": {
|
||||
"model": "minecraft:block/activator_rail_raised_sw"
|
||||
},
|
||||
"powered=false,shape=ascending_west": {
|
||||
"model": "minecraft:block/activator_rail_raised_sw",
|
||||
"y": 90
|
||||
},
|
||||
"powered=false,shape=east_west": {
|
||||
"model": "minecraft:block/activator_rail",
|
||||
"y": 90
|
||||
},
|
||||
"powered=false,shape=north_south": {
|
||||
"model": "minecraft:block/activator_rail"
|
||||
},
|
||||
"powered=true,shape=ascending_east": {
|
||||
"model": "minecraft:block/activator_rail_on_raised_ne",
|
||||
"y": 90
|
||||
},
|
||||
"powered=true,shape=ascending_north": {
|
||||
"model": "minecraft:block/activator_rail_on_raised_ne"
|
||||
},
|
||||
"powered=true,shape=ascending_south": {
|
||||
"model": "minecraft:block/activator_rail_on_raised_sw"
|
||||
},
|
||||
"powered=true,shape=ascending_west": {
|
||||
"model": "minecraft:block/activator_rail_on_raised_sw",
|
||||
"y": 90
|
||||
},
|
||||
"powered=true,shape=east_west": {
|
||||
"model": "minecraft:block/activator_rail_on",
|
||||
"y": 90
|
||||
},
|
||||
"powered=true,shape=north_south": {
|
||||
"model": "minecraft:block/activator_rail_on"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/air"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/allium"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/amethyst_block"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=down": {
|
||||
"model": "minecraft:block/amethyst_cluster",
|
||||
"x": 180
|
||||
},
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/amethyst_cluster",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/amethyst_cluster",
|
||||
"x": 90
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/amethyst_cluster",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"facing=up": {
|
||||
"model": "minecraft:block/amethyst_cluster"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/amethyst_cluster",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/ancient_debris"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/andesite"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/andesite_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/andesite"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/andesite_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner"
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer"
|
||||
},
|
||||
"facing=east,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs"
|
||||
},
|
||||
"facing=east,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner"
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer"
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/andesite_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/andesite_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=straight": {
|
||||
"model": "minecraft:block/andesite_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_post"
|
||||
},
|
||||
"when": {
|
||||
"up": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side",
|
||||
"uvlock": true
|
||||
},
|
||||
"when": {
|
||||
"north": "low"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"east": "low"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"south": "low"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"west": "low"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side_tall",
|
||||
"uvlock": true
|
||||
},
|
||||
"when": {
|
||||
"north": "tall"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side_tall",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"east": "tall"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side_tall",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"south": "tall"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/andesite_wall_side_tall",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"west": "tall"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/anvil",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/anvil",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/anvil"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/anvil",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/attached_melon_stem",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/attached_melon_stem",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/attached_melon_stem",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/attached_melon_stem"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/attached_pumpkin_stem",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/attached_pumpkin_stem",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/attached_pumpkin_stem",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/attached_pumpkin_stem"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/azalea"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/azalea_leaves"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/azure_bluet"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": [
|
||||
{
|
||||
"model": "minecraft:block/bamboo1_age0"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bamboo2_age0"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bamboo3_age0"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bamboo4_age0"
|
||||
}
|
||||
],
|
||||
"when": {
|
||||
"age": "0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": [
|
||||
{
|
||||
"model": "minecraft:block/bamboo1_age1"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bamboo2_age1"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bamboo3_age1"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bamboo4_age1"
|
||||
}
|
||||
],
|
||||
"when": {
|
||||
"age": "1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_small_leaves"
|
||||
},
|
||||
"when": {
|
||||
"leaves": "small"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_large_leaves"
|
||||
},
|
||||
"when": {
|
||||
"leaves": "large"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"axis=x": {
|
||||
"model": "minecraft:block/bamboo_block_x"
|
||||
},
|
||||
"axis=y": {
|
||||
"model": "minecraft:block/bamboo_block_y"
|
||||
},
|
||||
"axis=z": {
|
||||
"model": "minecraft:block/bamboo_block_z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"variants": {
|
||||
"face=ceiling,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"face=ceiling,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"face=ceiling,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"face=ceiling,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"face=ceiling,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"x": 180
|
||||
},
|
||||
"face=ceiling,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"x": 180
|
||||
},
|
||||
"face=ceiling,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"face=ceiling,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button"
|
||||
},
|
||||
"face=floor,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed"
|
||||
},
|
||||
"face=floor,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"y": 180
|
||||
},
|
||||
"face=floor,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"y": 180
|
||||
},
|
||||
"face=floor,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"y": 270
|
||||
},
|
||||
"face=floor,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"y": 270
|
||||
},
|
||||
"face=wall,facing=east,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"face=wall,facing=east,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"face=wall,facing=north,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"uvlock": true,
|
||||
"x": 90
|
||||
},
|
||||
"face=wall,facing=north,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90
|
||||
},
|
||||
"face=wall,facing=south,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"face=wall,facing=south,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"face=wall,facing=west,powered=false": {
|
||||
"model": "minecraft:block/bamboo_button",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"face=wall,facing=west,powered=true": {
|
||||
"model": "minecraft:block/bamboo_button_pressed",
|
||||
"uvlock": true,
|
||||
"x": 90,
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left"
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right"
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_left"
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_left_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_right"
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_right_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left_open"
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_left_open"
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_right_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right_open"
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_left_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_right",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_right_open"
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_left_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_bottom_right_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_left_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=false": {
|
||||
"model": "minecraft:block/bamboo_door_top_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=true": {
|
||||
"model": "minecraft:block/bamboo_door_top_right_open",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_fence_post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_fence_side_north"
|
||||
},
|
||||
"when": {
|
||||
"north": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_fence_side_east"
|
||||
},
|
||||
"when": {
|
||||
"east": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_fence_side_south"
|
||||
},
|
||||
"when": {
|
||||
"south": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_fence_side_west"
|
||||
},
|
||||
"when": {
|
||||
"west": "true"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate"
|
||||
},
|
||||
"facing=south,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_open"
|
||||
},
|
||||
"facing=south,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall"
|
||||
},
|
||||
"facing=south,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall_open"
|
||||
},
|
||||
"facing=west,in_wall=false,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,in_wall=false,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,in_wall=true,open=false": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,in_wall=true,open=true": {
|
||||
"model": "minecraft:block/bamboo_fence_gate_wall_open",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"variants": {
|
||||
"attached=false,rotation=0": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_0"
|
||||
},
|
||||
"attached=false,rotation=1": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_1"
|
||||
},
|
||||
"attached=false,rotation=10": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_2",
|
||||
"y": 180
|
||||
},
|
||||
"attached=false,rotation=11": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_3",
|
||||
"y": 180
|
||||
},
|
||||
"attached=false,rotation=12": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_0",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=13": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_1",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=14": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_2",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=15": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_3",
|
||||
"y": 270
|
||||
},
|
||||
"attached=false,rotation=2": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_2"
|
||||
},
|
||||
"attached=false,rotation=3": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_3"
|
||||
},
|
||||
"attached=false,rotation=4": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_0",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=5": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_1",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=6": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_2",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=7": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_3",
|
||||
"y": 90
|
||||
},
|
||||
"attached=false,rotation=8": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_0",
|
||||
"y": 180
|
||||
},
|
||||
"attached=false,rotation=9": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_rot_1",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=0": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_0"
|
||||
},
|
||||
"attached=true,rotation=1": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_1"
|
||||
},
|
||||
"attached=true,rotation=10": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_2",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=11": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_3",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=12": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_0",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=13": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_1",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=14": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_2",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=15": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_3",
|
||||
"y": 270
|
||||
},
|
||||
"attached=true,rotation=2": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_2"
|
||||
},
|
||||
"attached=true,rotation=3": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_3"
|
||||
},
|
||||
"attached=true,rotation=4": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_0",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=5": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_1",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=6": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_2",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=7": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_3",
|
||||
"y": 90
|
||||
},
|
||||
"attached=true,rotation=8": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_0",
|
||||
"y": 180
|
||||
},
|
||||
"attached=true,rotation=9": {
|
||||
"model": "minecraft:block/bamboo_hanging_sign_attached_rot_1",
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/bamboo_mosaic"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/bamboo_mosaic_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/bamboo_mosaic"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/bamboo_mosaic_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner"
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer"
|
||||
},
|
||||
"facing=east,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs"
|
||||
},
|
||||
"facing=east,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner"
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer"
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_mosaic_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/bamboo_planks"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"powered=false": {
|
||||
"model": "minecraft:block/bamboo_pressure_plate"
|
||||
},
|
||||
"powered=true": {
|
||||
"model": "minecraft:block/bamboo_pressure_plate_down"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/bamboo_sapling"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,402 @@
|
||||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf"
|
||||
},
|
||||
"when": {
|
||||
"facing": "north"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"facing": "east"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"facing": "south"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"facing": "west"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unpowered"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unpowered",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unpowered",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unpowered",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unconnected"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unconnected",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unconnected",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_unconnected",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "unconnected"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_left"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_left",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_left",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_left",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "left"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_center"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_center",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_center",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_center",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_right"
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "north"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_right",
|
||||
"y": 90
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "east"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_right",
|
||||
"y": 180
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "south"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apply": {
|
||||
"model": "minecraft:block/bamboo_shelf_right",
|
||||
"y": 270
|
||||
},
|
||||
"when": {
|
||||
"AND": [
|
||||
{
|
||||
"facing": "west"
|
||||
},
|
||||
{
|
||||
"powered": "true"
|
||||
},
|
||||
{
|
||||
"side_chain": "right"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"variants": {
|
||||
"rotation=0": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_0"
|
||||
},
|
||||
"rotation=1": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_1"
|
||||
},
|
||||
"rotation=10": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_2",
|
||||
"y": 180
|
||||
},
|
||||
"rotation=11": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_3",
|
||||
"y": 180
|
||||
},
|
||||
"rotation=12": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_0",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=13": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_1",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=14": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_2",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=15": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_3",
|
||||
"y": 270
|
||||
},
|
||||
"rotation=2": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_2"
|
||||
},
|
||||
"rotation=3": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_3"
|
||||
},
|
||||
"rotation=4": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_0",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=5": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_1",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=6": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_2",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=7": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_3",
|
||||
"y": 90
|
||||
},
|
||||
"rotation=8": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_0",
|
||||
"y": 180
|
||||
},
|
||||
"rotation=9": {
|
||||
"model": "minecraft:block/bamboo_sign_rot_1",
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=bottom": {
|
||||
"model": "minecraft:block/bamboo_slab"
|
||||
},
|
||||
"type=double": {
|
||||
"model": "minecraft:block/bamboo_planks"
|
||||
},
|
||||
"type=top": {
|
||||
"model": "minecraft:block/bamboo_slab_top"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner"
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer"
|
||||
},
|
||||
"facing=east,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs"
|
||||
},
|
||||
"facing=east,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180
|
||||
},
|
||||
"facing=north,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner"
|
||||
},
|
||||
"facing=south,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer"
|
||||
},
|
||||
"facing=south,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=bottom,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=bottom,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=inner_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_inner",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=outer_left": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=top,shape=outer_right": {
|
||||
"model": "minecraft:block/bamboo_stairs_outer",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,shape=straight": {
|
||||
"model": "minecraft:block/bamboo_stairs",
|
||||
"uvlock": true,
|
||||
"x": 180,
|
||||
"y": 180
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=bottom,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=top,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=bottom,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_bottom"
|
||||
},
|
||||
"facing=north,half=bottom,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open"
|
||||
},
|
||||
"facing=north,half=top,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_top"
|
||||
},
|
||||
"facing=north,half=top,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=bottom,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=bottom,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=top,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"x": 180
|
||||
},
|
||||
"facing=west,half=bottom,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=bottom,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,open=false": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=top,open=true": {
|
||||
"model": "minecraft:block/bamboo_trapdoor_open",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/bamboo_wall_hanging_sign",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/bamboo_wall_hanging_sign",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/bamboo_wall_hanging_sign"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/bamboo_wall_hanging_sign",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "minecraft:block/bamboo_wall_sign",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "minecraft:block/bamboo_wall_sign",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "minecraft:block/bamboo_wall_sign"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "minecraft:block/bamboo_wall_sign",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=down,open=false": {
|
||||
"model": "minecraft:block/barrel",
|
||||
"x": 180
|
||||
},
|
||||
"facing=down,open=true": {
|
||||
"model": "minecraft:block/barrel_open",
|
||||
"x": 180
|
||||
},
|
||||
"facing=east,open=false": {
|
||||
"model": "minecraft:block/barrel",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,open=true": {
|
||||
"model": "minecraft:block/barrel_open",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,open=false": {
|
||||
"model": "minecraft:block/barrel",
|
||||
"x": 90
|
||||
},
|
||||
"facing=north,open=true": {
|
||||
"model": "minecraft:block/barrel_open",
|
||||
"x": 90
|
||||
},
|
||||
"facing=south,open=false": {
|
||||
"model": "minecraft:block/barrel",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,open=true": {
|
||||
"model": "minecraft:block/barrel_open",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"facing=up,open=false": {
|
||||
"model": "minecraft:block/barrel"
|
||||
},
|
||||
"facing=up,open=true": {
|
||||
"model": "minecraft:block/barrel_open"
|
||||
},
|
||||
"facing=west,open=false": {
|
||||
"model": "minecraft:block/barrel",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,open=true": {
|
||||
"model": "minecraft:block/barrel_open",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/barrier"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"variants": {
|
||||
"axis=x": {
|
||||
"model": "minecraft:block/basalt",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis=y": {
|
||||
"model": "minecraft:block/basalt"
|
||||
},
|
||||
"axis=z": {
|
||||
"model": "minecraft:block/basalt",
|
||||
"x": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "minecraft:block/beacon"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{
|
||||
"model": "minecraft:block/bedrock"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bedrock_mirrored"
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bedrock",
|
||||
"y": 180
|
||||
},
|
||||
{
|
||||
"model": "minecraft:block/bedrock_mirrored",
|
||||
"y": 180
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user