稻谷配置 配方txt 修改
This commit is contained in:
1 parent
5f56d9b3db
commit
140e179e2b
10 files changed
+169
-176
No files matched your search
+15
-4
@@ -180,6 +180,15 @@ try:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# ---- 乡野自然(种葡萄: 手持葡萄右键支杆): NaturalData.GRAPE_PLANT ----
|
||||||
|
# 葡萄是食物(eat 动画), 右键支杆会被原版当"吃/使用"前摇, 需纳入 BLOCKUse 取消消闪,
|
||||||
|
# 机制与烧烤上杆(cod/salmon 同为食物右键支杆)完全一致。
|
||||||
|
try:
|
||||||
|
from ..ziran.NaturalData import GRAPE_PLANT as NATURAL_GRAPE_PLANT
|
||||||
|
_BLOCK_USE_TABLES.append(NATURAL_GRAPE_PLANT)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
# ---- 原版放置/盘子转换 (itemUseOn, surface=相邻放置 / source=盘子) ----
|
# ---- 原版放置/盘子转换 (itemUseOn, surface=相邻放置 / source=盘子) ----
|
||||||
try:
|
try:
|
||||||
from ..yuanbanfangzhi.YuanbanData import (
|
from ..yuanbanfangzhi.YuanbanData import (
|
||||||
@@ -352,9 +361,12 @@ ITEM_USE_ON_CANCEL = AUTO_CANCEL | SUSHI_CANCEL | COATING_CANCEL
|
|||||||
# 七、纯手持物品取消: 只看手持item (不做方块匹配)
|
# 七、纯手持物品取消: 只看手持item (不做方块匹配)
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
# ---- 原版相邻放置(YuanbanService ITEM_USE_ON_RULES) + 水稻种植(Natural RICE_PLANT) ----
|
# ---- 原版相邻放置(YuanbanService ITEM_USE_ON_RULES) ----
|
||||||
# 手持这些"非方块食品/种子"右键任意方块表面, 都在相邻空位摆放对应切配方块。
|
# 手持这些"非方块食品"右键任意方块表面, 都在相邻空位摆放对应切配方块。
|
||||||
# 它们本身不是可放置方块物品(放的是另一块), 但右键时会默认"吃/用", 需取消。
|
# 他们本身不是可放置方块物品(放的是另一块), 但右键时会默认"吃/用", 需取消。
|
||||||
|
# 注: 稻谷(rtdd:rice_seeds)不在此列 —— 它已改用物品 JSON 的 minecraft:seed 组件
|
||||||
|
# 由引擎原生种植(plant_at=farmland, crop_result=riceseedlingsb), 客户端不拦截,
|
||||||
|
# 否则会吞掉引擎的原生种植行为。
|
||||||
PLACE_ITEMS = {
|
PLACE_ITEMS = {
|
||||||
"minecraft:chicken",
|
"minecraft:chicken",
|
||||||
"minecraft:salmon",
|
"minecraft:salmon",
|
||||||
@@ -364,7 +376,6 @@ PLACE_ITEMS = {
|
|||||||
"minecraft:potato",
|
"minecraft:potato",
|
||||||
"rtdd:qingcai",
|
"rtdd:qingcai",
|
||||||
"rtdd:scallions",
|
"rtdd:scallions",
|
||||||
"rtdd:rice_seeds", # 稻谷: 右键耕地相邻放置水稻苗(RICE_PLANT)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ---- 总食用 手持直接吃 (Shiyongfood TRY_USE_RULES) ----
|
# ---- 总食用 手持直接吃 (Shiyongfood TRY_USE_RULES) ----
|
||||||
|
|||||||
@@ -51,6 +51,12 @@ GRAPE_HARVEST = {
|
|||||||
"tip": "§a取出了3个葡萄",
|
"tip": "§a取出了3个葡萄",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 葡萄种植: 手持葡萄右键支杆 -> 葡萄藤_1(之后按原版 tick 随机生长, 无提示)
|
||||||
|
GRAPE_PLANT = {
|
||||||
|
"source": "rtdd:b_34", "item": "rtdd:grape",
|
||||||
|
"target": "rtdd:grapebushes_1", "consume": 1,
|
||||||
|
}
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# 三、水稻收获(左键破坏掉落, 类似原版作物)
|
# 三、水稻收获(左键破坏掉落, 类似原版作物)
|
||||||
# 水稻方块被左键破坏 -> 掉落稻谷; 成熟(riceseedlingsd)额外掉大米
|
# 水稻方块被左键破坏 -> 掉落稻谷; 成熟(riceseedlingsd)额外掉大米
|
||||||
@@ -63,13 +69,19 @@ RICE_BLOCKS = [
|
|||||||
RICE_SEED_ITEM = "rtdd:rice_seeds" # 破坏掉落稻谷
|
RICE_SEED_ITEM = "rtdd:rice_seeds" # 破坏掉落稻谷
|
||||||
RICE_CROP_ITEM = "rtdd:brownrice" # 成熟额外掉落大米
|
RICE_CROP_ITEM = "rtdd:brownrice" # 成熟额外掉落大米
|
||||||
|
|
||||||
# 水稻生长: 改用"原版 tick 概率生长"(每 block tick 一定概率长大一级) + 骨粉右键
|
# 水稻/葡萄藤 生长: 都用"原版 tick 概率生长"(每 block tick 一定概率长大一级) + 骨粉右键
|
||||||
# RICE_BLOCKS 顺序即生长阶段: [0]刚种 -> [1]生长中 -> [2]成熟
|
# 葡萄藤生长: 走"原版 tick 概率生长"代码(每 block tick 一定概率长大一级) + 骨粉右键。
|
||||||
RICE_GROW_PROB = 0.001 # 每 block tick 生长一级的概率(原版随机式; 实测约20tick/秒, 每级≈50秒, 满熟≈1分40秒)
|
# 稻谷(rice_seeds)已改用物品 JSON 的 minecraft:seed + 方块 base_block=custom_crop_block
|
||||||
BONE_MEAL = "minecraft:bone_meal" # 骨粉(右键概率增加生长)
|
# 的 netease:transform 由原版随机刻驱动生长(见 netease_blocks/riceseedlingsb,c.json),
|
||||||
|
# 不在此代码生长链里, 避免双重驱动。
|
||||||
|
GROW_CHAIN = {
|
||||||
|
"rtdd:grapebushes_1": "rtdd:grapebushes_2", # 葡萄藤_1 -> _2
|
||||||
|
} # 生长链: 当前方块 -> 长大一级后的方块, 供代码 tick 概率生长 + 骨粉催熟
|
||||||
|
GROW_PROB = 0.0003 # 每 block tick 长大一级的概率(原版随机式; 每级≈3分钟, 满熟数分钟~十来分钟)
|
||||||
|
BONE_MEAL = "minecraft:bone_meal" # 骨粉(右键对生长链方块催熟1级)
|
||||||
|
|
||||||
# 汇总: 乡野自然右键切换规则
|
# 汇总: 乡野自然右键切换规则
|
||||||
NATURAL_SWITCHES = FIREWOOD_RULES + [GRAPE_HARVEST]
|
NATURAL_SWITCHES = FIREWOOD_RULES + [GRAPE_HARVEST, GRAPE_PLANT]
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# 四、计时转换 (果树结果 / 葡萄藤生长 / 水稻生长, 均 autoStart 自动生长)
|
# 四、计时转换 (果树结果 / 葡萄藤生长 / 水稻生长, 均 autoStart 自动生长)
|
||||||
@@ -92,19 +104,12 @@ NATURAL_TIMERS = [
|
|||||||
"time": 60, "autoStart": True},
|
"time": 60, "autoStart": True},
|
||||||
{"source": "rtdd:tangerine_1", "target": "rtdd:tangerine_2",
|
{"source": "rtdd:tangerine_1", "target": "rtdd:tangerine_2",
|
||||||
"time": 60, "autoStart": True, "doneTip": "§e橘子熟了"},
|
"time": 60, "autoStart": True, "doneTip": "§e橘子熟了"},
|
||||||
# 葡萄藤: 藤_1 -> 藤_2
|
# 水稻/葡萄藤 已改用"原版 tick 概率生长(每block tick随机长大一级)+骨粉",
|
||||||
{"source": "rtdd:grapebushes_1", "target": "rtdd:grapebushes_2",
|
# 见 NaturalTimerService._growBlockProcess / GROW_CHAIN, 不再走这里的秒式时长, 故都不在此
|
||||||
"time": 180, "autoStart": True, "doneTip": "§e葡萄熟了"},
|
|
||||||
# 水稻已改用"原版 tick 概率生长(每block tick随机长大一级)+骨粉", 见 NaturalTimerService._riceTickProcess,
|
|
||||||
# 不再走这里的秒式时长计时, 故从 NATURAL_TIMERS 移除
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# 五、水稻种植(手持稻谷右键耕地, 在耕地上方放置水稻刚种下)
|
# 五、水稻种植:已交由物品定义 JSON 的 minecraft:seed 组件处理
|
||||||
# ============================================================================
|
# (netease_items_beh/rtdd_rice_seeds.json: plant_at=[farmland],
|
||||||
RICE_PLANT = {
|
# crop_result=rtdd:riceseedlingsb)。引擎原生支持"手持稻谷右键耕地"种植。
|
||||||
"item": "rtdd:rice_seeds", # 稻谷(手持)
|
# ============================================================================
|
||||||
"surface": "minecraft:farmland", # 必须右键原版耕地
|
|
||||||
"target": "rtdd:riceseedlingsb", # 放置水稻刚种下
|
|
||||||
"consume": 1,
|
|
||||||
}
|
|
||||||
+15
-55
@@ -33,7 +33,7 @@ from ....BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxServerSystem
|
|||||||
from ....BlueFoxTools.ToolsConfig import LevelId
|
from ....BlueFoxTools.ToolsConfig import LevelId
|
||||||
|
|
||||||
# ---- 只导入乡野自然自己的数据库 ----
|
# ---- 只导入乡野自然自己的数据库 ----
|
||||||
from ..NaturalData import NATURAL_SWITCHES, RICE_PLANT, RICE_BLOCKS, RICE_SEED_ITEM, RICE_CROP_ITEM, BONE_MEAL
|
from ..NaturalData import NATURAL_SWITCHES, RICE_BLOCKS, RICE_SEED_ITEM, RICE_CROP_ITEM, BONE_MEAL, GROW_CHAIN
|
||||||
|
|
||||||
# ---- 统一分发器 ----
|
# ---- 统一分发器 ----
|
||||||
from ...service.FeatureDispatcher import FeatureDispatcher
|
from ...service.FeatureDispatcher import FeatureDispatcher
|
||||||
@@ -54,9 +54,13 @@ class NaturalService(BlueFoxServerSystem):
|
|||||||
for r in NATURAL_SWITCHES:
|
for r in NATURAL_SWITCHES:
|
||||||
self.switchRecipes[(r["source"], r.get("item"))] = r
|
self.switchRecipes[(r["source"], r.get("item"))] = r
|
||||||
self.featureBlocks.add(r["source"])
|
self.featureBlocks.add(r["source"])
|
||||||
# 水稻方块: 只为接收"左键破坏掉落"事件注册(右键无规则, handleBlockUse 会返回 False)
|
# 水稻方块: 只为接收"左键破坏掉落"事件注册; 右键无规则(返回 False),
|
||||||
|
# 其生长/骨粉由原版 base_block=custom_crop_block 的 transform 处理。
|
||||||
for b in RICE_BLOCKS:
|
for b in RICE_BLOCKS:
|
||||||
self.featureBlocks.add(b)
|
self.featureBlocks.add(b)
|
||||||
|
# 葡萄藤_1: 供"手持骨粉右键催熟"路由进来(走代码 GROW_CHAIN)。
|
||||||
|
for b in GROW_CHAIN.keys():
|
||||||
|
self.featureBlocks.add(b)
|
||||||
|
|
||||||
# ---- 右键冷却表 ----
|
# ---- 右键冷却表 ----
|
||||||
self.cooldown = {}
|
self.cooldown = {}
|
||||||
@@ -72,10 +76,6 @@ class NaturalService(BlueFoxServerSystem):
|
|||||||
"""返回本功能管辖的所有右键方块名集合(右键路由用)"""
|
"""返回本功能管辖的所有右键方块名集合(右键路由用)"""
|
||||||
return self.featureBlocks
|
return self.featureBlocks
|
||||||
|
|
||||||
def getItemUseOnRules(self):
|
|
||||||
"""返回"手持物品右键方块表面"的规则: 稻谷(rice_seeds) → 种植水稻"""
|
|
||||||
return {RICE_PLANT["item"]: True}
|
|
||||||
|
|
||||||
def handleBlockUse(self, args):
|
def handleBlockUse(self, args):
|
||||||
"""由 FeatureDispatcher 转发的右键方块入口(柴火/葡萄收获/水稻收获)"""
|
"""由 FeatureDispatcher 转发的右键方块入口(柴火/葡萄收获/水稻收获)"""
|
||||||
blockName = args.get("blockName")
|
blockName = args.get("blockName")
|
||||||
@@ -90,8 +90,9 @@ class NaturalService(BlueFoxServerSystem):
|
|||||||
|
|
||||||
recipe = self.findRecipe(blockName, itemDict)
|
recipe = self.findRecipe(blockName, itemDict)
|
||||||
if not recipe:
|
if not recipe:
|
||||||
# 骨粉右键水稻 -> 概率催熟(还原原版农作物施肥)
|
# 骨粉右键葡萄藤 -> 催熟一级(葡萄藤走代码 GROW_CHAIN)。
|
||||||
if itemName == BONE_MEAL and blockName in RICE_BLOCKS:
|
# 稻谷走原版 transform(引擎自带骨粉加速), 由 findRecipe 无规则则交给原版, 不在此拦。
|
||||||
|
if itemName == BONE_MEAL and blockName in GROW_CHAIN:
|
||||||
if self.checkCooldown(key, 0.3):
|
if self.checkCooldown(key, 0.3):
|
||||||
self._applyBoneMeal(playerId, pos, dim, blockName, itemDict)
|
self._applyBoneMeal(playerId, pos, dim, blockName, itemDict)
|
||||||
return True
|
return True
|
||||||
@@ -144,48 +145,6 @@ class NaturalService(BlueFoxServerSystem):
|
|||||||
pass
|
pass
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def handleItemUseOn(self, args):
|
|
||||||
"""由 FeatureDispatcher 转发的"手持物品右键方块表面"入口(稻谷种水稻)"""
|
|
||||||
itemName = args.get("itemName")
|
|
||||||
playerId = args.get("playerId") or args.get("entityId")
|
|
||||||
x, y, z = args.get("x"), args.get("y"), args.get("z")
|
|
||||||
dim = comp.CreateDimension(playerId).GetEntityDimensionId()
|
|
||||||
|
|
||||||
if itemName != RICE_PLANT["item"]:
|
|
||||||
return False
|
|
||||||
|
|
||||||
# 被点方块必须是原版耕地
|
|
||||||
try:
|
|
||||||
cur = comp.CreateBlockInfo(LevelId).GetBlockNew((x, y, z), dim)
|
|
||||||
if not cur or cur.get("name") != RICE_PLANT["surface"]:
|
|
||||||
return False
|
|
||||||
except Exception:
|
|
||||||
return False
|
|
||||||
|
|
||||||
# 目标格 = 耕地上方一格
|
|
||||||
targetPos = (x, y + 1, z)
|
|
||||||
try:
|
|
||||||
cur = comp.CreateBlockInfo(LevelId).GetBlockNew(targetPos, dim)
|
|
||||||
if cur and cur.get("name") != "minecraft:air":
|
|
||||||
return False
|
|
||||||
except Exception:
|
|
||||||
return False
|
|
||||||
|
|
||||||
# 连点冷却
|
|
||||||
key = (dim, targetPos[0], targetPos[1], targetPos[2])
|
|
||||||
if not self.checkCooldown(key, 0.5):
|
|
||||||
return True
|
|
||||||
|
|
||||||
# 消耗稻谷
|
|
||||||
itemDict = self.getCarriedItem(playerId)
|
|
||||||
if not itemDict:
|
|
||||||
return False
|
|
||||||
self.consumeItem(playerId, itemDict, RICE_PLANT.get("consume", 1))
|
|
||||||
|
|
||||||
# 放置水稻刚种下
|
|
||||||
self.replaceBlock(targetPos, dim, RICE_PLANT["target"], playerId)
|
|
||||||
return True
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# 二、规则匹配(精确 + 空手 fallback)
|
# 二、规则匹配(精确 + 空手 fallback)
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
@@ -221,13 +180,14 @@ class NaturalService(BlueFoxServerSystem):
|
|||||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, recipe["tip"])
|
comp.CreateMsg(playerId).NotifyOneMessage(playerId, recipe["tip"])
|
||||||
|
|
||||||
def _applyBoneMeal(self, playerId, pos, dim, blockName, itemDict):
|
def _applyBoneMeal(self, playerId, pos, dim, blockName, itemDict):
|
||||||
"""骨粉催熟水稻: 消耗1个骨粉, 让水稻长大一级(不越级, 到成熟为止), 无提示"""
|
"""骨粉催熟葡萄藤: 消耗1个骨粉, 沿 GROW_CHAIN 长大一级(不越级), 无提示。
|
||||||
|
稻谷骨粉由原版 transform 处理, 不经此。"""
|
||||||
try:
|
try:
|
||||||
if blockName == RICE_BLOCKS[-1]:
|
target = GROW_CHAIN.get(blockName)
|
||||||
return # 已成熟, 不再消耗
|
if not target:
|
||||||
index = RICE_BLOCKS.index(blockName)
|
return # 不在生长链上(已是最终形态), 不消耗
|
||||||
self.consumeItem(playerId, itemDict, 1)
|
self.consumeItem(playerId, itemDict, 1)
|
||||||
self.replaceBlock(pos, dim, RICE_BLOCKS[index + 1], playerId)
|
self.replaceBlock(pos, dim, target, playerId)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
+12
-12
@@ -38,7 +38,7 @@ from ....BlueFoxTools.ToolsConfig import LevelId
|
|||||||
blockEntityDataComp = comp.CreateBlockEntityData(LevelId)
|
blockEntityDataComp = comp.CreateBlockEntityData(LevelId)
|
||||||
|
|
||||||
# ---- 只导入乡野自然自己的数据库 ----
|
# ---- 只导入乡野自然自己的数据库 ----
|
||||||
from ..NaturalData import NATURAL_TIMERS, RICE_BLOCKS, RICE_GROW_PROB
|
from ..NaturalData import NATURAL_TIMERS, GROW_CHAIN, GROW_PROB
|
||||||
|
|
||||||
# ---- 统一分发器 ----
|
# ---- 统一分发器 ----
|
||||||
from ...service.FeatureDispatcher import FeatureDispatcher
|
from ...service.FeatureDispatcher import FeatureDispatcher
|
||||||
@@ -66,7 +66,7 @@ class NaturalTimerService(BlueFoxServerSystem):
|
|||||||
def getTimerBlocks(self):
|
def getTimerBlocks(self):
|
||||||
"""返回本功能的所有"计时源方块"集合(tick 路由用)"""
|
"""返回本功能的所有"计时源方块"集合(tick 路由用)"""
|
||||||
blocks = set(self.naturalTimers.keys())
|
blocks = set(self.naturalTimers.keys())
|
||||||
blocks.update(RICE_BLOCKS) # 水稻 tick 概率生长也要路由进来
|
blocks.update(GROW_CHAIN.keys()) # 葡萄藤 tick 概率生长路由进来(稻谷已改用原版 transform)
|
||||||
return blocks
|
return blocks
|
||||||
|
|
||||||
def handleBlockEntityTick(self, args):
|
def handleBlockEntityTick(self, args):
|
||||||
@@ -99,9 +99,9 @@ class NaturalTimerService(BlueFoxServerSystem):
|
|||||||
|
|
||||||
def _tickProcess(self, dim, pos, blockName):
|
def _tickProcess(self, dim, pos, blockName):
|
||||||
try:
|
try:
|
||||||
# 水稻: 走"原版 tick 概率生长"(不是秒式时长)
|
# 水稻/葡萄藤: 走"原版 tick 概率生长"(不是秒式时长)
|
||||||
if blockName in RICE_BLOCKS:
|
if blockName in GROW_CHAIN:
|
||||||
self._riceTickProcess(dim, pos, blockName)
|
self._growBlockProcess(dim, pos, blockName)
|
||||||
return
|
return
|
||||||
recipe = self.naturalTimers.get(blockName)
|
recipe = self.naturalTimers.get(blockName)
|
||||||
if not recipe:
|
if not recipe:
|
||||||
@@ -129,14 +129,14 @@ class NaturalTimerService(BlueFoxServerSystem):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def _riceTickProcess(self, dim, pos, blockName):
|
def _growBlockProcess(self, dim, pos, blockName):
|
||||||
"""水稻原版式 tick 生长: 每个 block tick 以 RICE_GROW_PROB 概率长大一级(到成熟为止)"""
|
"""水稻/葡萄藤 原版式 tick 生长: 每个 block tick 以 GROW_PROB 概率沿 GROW_CHAIN 长大一级"""
|
||||||
try:
|
try:
|
||||||
index = RICE_BLOCKS.index(blockName)
|
target = GROW_CHAIN.get(blockName)
|
||||||
if index >= len(RICE_BLOCKS) - 1:
|
if not target:
|
||||||
return # 已成熟
|
return
|
||||||
if random.random() < RICE_GROW_PROB:
|
if random.random() < GROW_PROB:
|
||||||
self.replaceBlock(pos, dim, RICE_BLOCKS[index + 1], None)
|
self.replaceBlock(pos, dim, target, None)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
"minecraft:block": {
|
"minecraft:block": {
|
||||||
"description": {
|
"description": {
|
||||||
"identifier": "rtdd:riceseedlingsb",
|
"identifier": "rtdd:riceseedlingsb",
|
||||||
"register_to_creative_menu": true,
|
"register_to_creative_menu": false,
|
||||||
"category": "xy_natural"
|
"category": "xy_natural",
|
||||||
|
"base_block": "custom_crop_block"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
"netease:aabb": {
|
"netease:aabb": {
|
||||||
@@ -33,10 +34,17 @@
|
|||||||
"netease:face_directional": {
|
"netease:face_directional": {
|
||||||
"type": "direction"
|
"type": "direction"
|
||||||
},
|
},
|
||||||
"netease:block_entity": {
|
"netease:transform": {
|
||||||
"client_tick": false,
|
"conditions": {
|
||||||
"movable": false,
|
"brightness": {
|
||||||
"tick": true
|
"min": 9,
|
||||||
|
"max": 15
|
||||||
|
},
|
||||||
|
"random_tick_count": {
|
||||||
|
"value": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": "rtdd:riceseedlingsc"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
"minecraft:block": {
|
"minecraft:block": {
|
||||||
"description": {
|
"description": {
|
||||||
"identifier": "rtdd:riceseedlingsc",
|
"identifier": "rtdd:riceseedlingsc",
|
||||||
"register_to_creative_menu": true,
|
"register_to_creative_menu": false,
|
||||||
"category": "xy_natural"
|
"category": "xy_natural",
|
||||||
|
"base_block": "custom_crop_block"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
"netease:aabb": {
|
"netease:aabb": {
|
||||||
@@ -33,10 +34,17 @@
|
|||||||
"netease:face_directional": {
|
"netease:face_directional": {
|
||||||
"type": "direction"
|
"type": "direction"
|
||||||
},
|
},
|
||||||
"netease:block_entity": {
|
"netease:transform": {
|
||||||
"client_tick": false,
|
"conditions": {
|
||||||
"movable": false,
|
"brightness": {
|
||||||
"tick": true
|
"min": 9,
|
||||||
|
"max": 15
|
||||||
|
},
|
||||||
|
"random_tick_count": {
|
||||||
|
"value": 3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": "rtdd:riceseedlingsd"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
"minecraft:block": {
|
"minecraft:block": {
|
||||||
"description": {
|
"description": {
|
||||||
"identifier": "rtdd:riceseedlingsd",
|
"identifier": "rtdd:riceseedlingsd",
|
||||||
"register_to_creative_menu": true,
|
"register_to_creative_menu": false,
|
||||||
"category": "xy_natural"
|
"category": "xy_natural",
|
||||||
|
"base_block": "custom_crop_block"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
"netease:aabb": {
|
"netease:aabb": {
|
||||||
@@ -32,11 +33,6 @@
|
|||||||
},
|
},
|
||||||
"netease:face_directional": {
|
"netease:face_directional": {
|
||||||
"type": "direction"
|
"type": "direction"
|
||||||
},
|
|
||||||
"netease:block_entity": {
|
|
||||||
"client_tick": false,
|
|
||||||
"movable": false,
|
|
||||||
"tick": false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,11 @@
|
|||||||
"format_version": "1.10",
|
"format_version": "1.10",
|
||||||
"minecraft:item": {
|
"minecraft:item": {
|
||||||
"components": {
|
"components": {
|
||||||
"minecraft:max_stack_size": 64
|
"minecraft:max_stack_size": 64,
|
||||||
|
"minecraft:seed": {
|
||||||
|
"crop_result": "rtdd:riceseedlingsb",
|
||||||
|
"plant_at": ["minecraft:farmland"]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"category": "xy_natural",
|
"category": "xy_natural",
|
||||||
|
|||||||
+10
-7
@@ -3,7 +3,7 @@
|
|||||||
========================================
|
========================================
|
||||||
说明:
|
说明:
|
||||||
- 分为3个分组: 果树·树叶 / 藤蔓·柴火 / 水稻·作物
|
- 分为3个分组: 果树·树叶 / 藤蔓·柴火 / 水稻·作物
|
||||||
- 果树结果、作物生长为计时产出
|
- 果树结果为计时产出; 水稻为原版随机刻生长(custom_crop_block+transform); 葡萄藤为代码tick概率生长; 均可骨粉催熟
|
||||||
- 产出的水果/大米等均进入 乡野食材分类, 供榨汁/炒冰/汤锅等使用
|
- 产出的水果/大米等均进入 乡野食材分类, 供榨汁/炒冰/汤锅等使用
|
||||||
|
|
||||||
|
|
||||||
@@ -33,9 +33,11 @@ todo 后续实现
|
|||||||
========================================
|
========================================
|
||||||
二、藤蔓·柴火
|
二、藤蔓·柴火
|
||||||
========================================
|
========================================
|
||||||
|
支杆->葡萄藤_1
|
||||||
|
手持葡萄右键支杆
|
||||||
4. 葡萄藤_1 -> 葡萄藤_2
|
4. 葡萄藤_1 -> 葡萄藤_2
|
||||||
转换条件:[葡萄藤生长计时]
|
转换条件:[代码tick概率生长]
|
||||||
机制: 计时约180秒生长
|
机制: 每block tick以低概率随机长大一级(约3分钟一级); 可手持骨粉右键催熟一级(不越级,无提示)
|
||||||
(成熟葡萄(grape)供榨汁/冰棍/炒冰, 见 乡野饮料)
|
(成熟葡萄(grape)供榨汁/冰棍/炒冰, 见 乡野饮料)
|
||||||
|
|
||||||
4a. 葡萄藤_2 -> 葡萄藤_1
|
4a. 葡萄藤_2 -> 葡萄藤_1
|
||||||
@@ -59,14 +61,15 @@ todo 后续实现
|
|||||||
三、水稻·作物
|
三、水稻·作物
|
||||||
========================================
|
========================================
|
||||||
6. 稻谷 -> 水稻(刚种下)
|
6. 稻谷 -> 水稻(刚种下)
|
||||||
转换条件:[手持 稻谷(rtdd:rice_seeds, 乡野自然) 右键 进行种植]
|
转换条件:[手持 稻谷(rtdd:rice_seeds, 乡野自然) 右键耕地, 官方 minecraft:seed 组件原生种植]
|
||||||
机制: 手持稻谷右键耕地, 消耗1个, 种下水稻(稻谷已从乡野食材移入乡野自然/水稻·作物)
|
机制: 手持稻谷右键原版耕地, 消耗1个, 引擎自动在耕地上方种下水稻(稻谷已从乡野食材移入乡野自然/水稻·作物)
|
||||||
首次获取: 傻子职业村民交易 1绿宝石 -> 3稻谷(见 全部功能做了什么.txt 村民交易节);
|
首次获取: 傻子职业村民交易 1绿宝石 -> 3稻谷(见 全部功能做了什么.txt 村民交易节);
|
||||||
之后靠 打碎水稻 返还稻谷自给(见7a)。
|
之后靠 打碎水稻 返还稻谷自给(见7a)。
|
||||||
|
|
||||||
7. 水稻(刚种下) -> 水稻(生长中) -> 水稻(成熟)
|
7. 水稻(刚种下) -> 水稻(生长中) -> 水稻(成熟)
|
||||||
转换条件:[水稻生长计时,逐级变化]
|
转换条件:[原版随机刻(netease:transform 的 random_tick_count),光照≥9]
|
||||||
机制: 计时生长,约120秒升一级,共两级成熟
|
机制: 方块 base_block=custom_crop_block + netease:transform, 随机刻满3次自动升一级;
|
||||||
|
由 gamerule randomTickSpeed 控制快慢; 骨粉由引擎原生催熟
|
||||||
|
|
||||||
7a. 水稻(各状态) 左键破坏 -> 掉落稻谷; 成熟额外掉大米
|
7a. 水稻(各状态) 左键破坏 -> 掉落稻谷; 成熟额外掉大米
|
||||||
转换条件:[左键 破坏方块]
|
转换条件:[左键 破坏方块]
|
||||||
|
|||||||
+58
-60
@@ -18,7 +18,7 @@
|
|||||||
任意原版木头 任意原版木头 任意原版木头
|
任意原版木头 任意原版木头 任意原版木头
|
||||||
任意原版木头 任意原版木头 任意原版木头
|
任意原版木头 任意原版木头 任意原版木头
|
||||||
|
|
||||||
● 柴火堆_2(firewood_2) x9【有序】
|
● 柴火堆_2(firewood_2) x9【有序】 todo 删掉
|
||||||
【空】 【空】 任意原版木头
|
【空】 【空】 任意原版木头
|
||||||
【空】 任意原版木头 任意原版木头
|
【空】 任意原版木头 任意原版木头
|
||||||
任意原版木头 任意原版木头 任意原版木头
|
任意原版木头 任意原版木头 任意原版木头
|
||||||
@@ -40,33 +40,29 @@
|
|||||||
【空】 【空】 【空】
|
【空】 【空】 【空】
|
||||||
【空】 【空】 【空】
|
【空】 【空】 【空】
|
||||||
(面包堆/鳕鱼堆/鸡蛋堆/土豆堆/鲑鱼堆/桃子堆/橙子堆:放入对应堆 -> 得 9 个对应食材)
|
(面包堆/鳕鱼堆/鸡蛋堆/土豆堆/鲑鱼堆/桃子堆/橙子堆:放入对应堆 -> 得 9 个对应食材)
|
||||||
|
|
||||||
【食材堆 - 8 取用】(堆 -> 8 个对应食材)【无序】
|
|
||||||
(苹果堆/面包堆/鳕鱼堆/土豆堆/鲑鱼堆 任意摆放 -> 得 8 个对应食材)
|
|
||||||
|
|
||||||
【串】
|
【串】
|
||||||
● 大蒜串(garlicskewers)【有序】
|
● 大蒜串(garlicskewers)【有序】todo 修改
|
||||||
大蒜 大蒜 大蒜
|
大蒜 大蒜 大蒜
|
||||||
大蒜 支杆 大蒜
|
大蒜 木棍 大蒜
|
||||||
大蒜 支杆 大蒜
|
大蒜 木棍 大蒜
|
||||||
(支杆=rtdd:b_34)
|
(支杆=rtdd:b_34)
|
||||||
● 辣椒串(chiliskewer)【有序】
|
● 辣椒串(chiliskewer)【有序】todo 修改
|
||||||
辣椒 辣椒 辣椒
|
辣椒 辣椒 辣椒
|
||||||
辣椒 支杆 辣椒
|
辣椒 木棍 辣椒
|
||||||
辣椒 支杆 辣椒
|
辣椒 木棍 辣椒
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
三、死亡生物 (xy_deadmob)
|
三、死亡生物 (xy_deadmob)
|
||||||
########################################################################
|
########################################################################
|
||||||
● 骨头(minecraft:bone)【有序 · 单格】
|
● 骨头(minecraft:bone)【有序 · 单格】todo 删掉
|
||||||
牛头骨 【空】 【空】
|
牛头骨 【空】 【空】
|
||||||
【空】 【空】 【空】
|
【空】 【空】 【空】
|
||||||
【空】 【空】 【空】
|
【空】 【空】 【空】
|
||||||
|
|
||||||
● 挂肉钩(meathook)【有序】
|
● 挂肉钩(meathook)【有序】todo 修改 这里的支杆是没有禁用的支杆!后面所有的支杆都是没禁用的支杆!
|
||||||
支撑杆
|
支杆支杆支杆
|
||||||
铁锭
|
铁锭[空]铁锭
|
||||||
(支杆=rtdd:support_rod)
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
四、厨具 (xy_kitchenware)
|
四、厨具 (xy_kitchenware)
|
||||||
@@ -77,15 +73,15 @@
|
|||||||
【空】 【空】 【空】
|
【空】 【空】 【空】
|
||||||
|
|
||||||
● 丸子机(meatballmaker_0)【有序】
|
● 丸子机(meatballmaker_0)【有序】
|
||||||
支撑杆 铁锭 铁锭
|
支杆 铁锭 铁锭
|
||||||
|
|
||||||
● 擀面杖(rollingpin) x4【有序】
|
● 擀面杖(rollingpin) x4【有序】
|
||||||
支撑杆 任意原版木板
|
支杆 任意原版木板
|
||||||
|
|
||||||
● 锅铲(spatula)【有序】
|
● 锅铲(spatula)【有序】
|
||||||
【空】 【空】 铁锭
|
【空】 【空】 铁锭
|
||||||
【空】 支撑杆 【空】
|
【空】 支杆 【空】
|
||||||
支撑杆 【空】 【空】
|
支杆 【空】 【空】
|
||||||
|
|
||||||
● 蒸笼(steamer)【有序】
|
● 蒸笼(steamer)【有序】
|
||||||
竹子 竹子 竹子
|
竹子 竹子 竹子
|
||||||
@@ -93,25 +89,29 @@
|
|||||||
|
|
||||||
● 石磨(stonemill)【有序】
|
● 石磨(stonemill)【有序】
|
||||||
石头 【空】 【空】
|
石头 【空】 【空】
|
||||||
石头 支撑杆 【空】
|
石头 支杆 【空】
|
||||||
石头 【空】 【空】
|
石头 【空】 【空】
|
||||||
|
|
||||||
● 盘子(plate_0) x6【有序】
|
● 盘子(plate_0) x6【有序】
|
||||||
任意原版木板 任意原版木头台阶 任意原版木板
|
任意原版木板 任意原版木头台阶 任意原版木板
|
||||||
|
|
||||||
● 盘子堆(platepile)【有序】
|
● 盘子堆(platepile)【有序】todo 获得九个盘子,而不是一个
|
||||||
盘子 盘子 盘子
|
盘子 盘子 盘子
|
||||||
盘子 盘子 盘子
|
盘子 盘子 盘子
|
||||||
盘子 盘子 盘子
|
盘子 盘子 盘子
|
||||||
|
|
||||||
● 盘子(plate_0) = 盘子堆 x1【有序 · 单格】
|
|
||||||
盘子堆 【空】 【空】
|
|
||||||
【空】 【空】 【空】
|
|
||||||
【空】 【空】 【空】
|
|
||||||
|
|
||||||
● 玻璃罐(medicinetank)【有序】
|
● 玻璃罐(medicinetank)【有序】
|
||||||
任意原版木板
|
任意原版木板
|
||||||
玻璃
|
玻璃
|
||||||
|
todo 补充
|
||||||
|
刀:
|
||||||
|
【空】 铁锭 【空】
|
||||||
|
木棍 【空】 【空】
|
||||||
|
石头 【空】 【空】
|
||||||
|
支杆:
|
||||||
|
【空】 【空】 【空】
|
||||||
|
木棍 木棍 木棍
|
||||||
|
空 【空】 【空】
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
五、动物养殖 (xy_animal)
|
五、动物养殖 (xy_animal)
|
||||||
@@ -211,7 +211,7 @@
|
|||||||
木板条 木板条 木板条
|
木板条 木板条 木板条
|
||||||
木板条 【空】 木板条
|
木板条 【空】 木板条
|
||||||
● 厨具架(kitchenwarerack) 配方2【有序】
|
● 厨具架(kitchenwarerack) 配方2【有序】
|
||||||
木板条 支撑杆 木板条
|
木板条 支杆 木板条
|
||||||
● 药水架(lotion_0) x4【有序】
|
● 药水架(lotion_0) x4【有序】
|
||||||
【空】 【空】 任意原版木头
|
【空】 【空】 任意原版木头
|
||||||
【空】 木板条 任意原版木头
|
【空】 木板条 任意原版木头
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
云杉活板门 【空】
|
云杉活板门 【空】
|
||||||
【空】 云杉活板门
|
【空】 云杉活板门
|
||||||
● 调料架(seasoningrack)【有序】
|
● 调料架(seasoningrack)【有序】
|
||||||
支撑杆 木板条 支撑杆
|
支杆 木板条 支杆
|
||||||
● 垃圾桶(storage_buckets)【有序】
|
● 垃圾桶(storage_buckets)【有序】
|
||||||
任意原版木板 任意原版木头台阶 任意原版木板
|
任意原版木板 任意原版木头台阶 任意原版木板
|
||||||
任意原版木板 【空】 任意原版木板
|
任意原版木板 【空】 任意原版木板
|
||||||
@@ -268,12 +268,12 @@
|
|||||||
车轮 【空】 车轮
|
车轮 【空】 车轮
|
||||||
● 风车叶(fanblades)【有序】
|
● 风车叶(fanblades)【有序】
|
||||||
木板条 任意原版羊毛 木板条
|
木板条 任意原版羊毛 木板条
|
||||||
任意原版羊毛 支撑杆 任意原版羊毛
|
任意原版羊毛 支杆 任意原版羊毛
|
||||||
木板条 任意原版羊毛 木板条
|
木板条 任意原版羊毛 木板条
|
||||||
● 支撑柱(prop_up) x2【有序】
|
● 支撑柱(prop_up) x2【有序】
|
||||||
支撑杆 【空】 支撑杆
|
支杆 【空】 支杆
|
||||||
【空】 支撑杆 【空】
|
【空】 支杆 【空】
|
||||||
支撑杆 【空】 支撑杆
|
支杆 【空】 支杆
|
||||||
● 车轮(wheel)【有序】
|
● 车轮(wheel)【有序】
|
||||||
【空】 木棍 【空】
|
【空】 木棍 【空】
|
||||||
木棍 木棍 木棍
|
木棍 木棍 木棍
|
||||||
@@ -282,14 +282,12 @@
|
|||||||
########################################################################
|
########################################################################
|
||||||
十五、药物系统 (xy_medicine)
|
十五、药物系统 (xy_medicine)
|
||||||
########################################################################
|
########################################################################
|
||||||
● 石臼(mortar) 配方1【有序】(骨头)
|
● 石臼(mortar) 配方1【有序】(骨头3)
|
||||||
【空】 骨头 【空】
|
骨头 【空】 骨头
|
||||||
【空】 骨头 【空】
|
【空】 骨头 【空】
|
||||||
(首行 0/2 + 中行 4 共 3 骨头)
|
● 石臼(mortar) 配方2【有序】(圆石3)
|
||||||
● 石臼(mortar) 配方2【有序】(圆石)
|
圆石 【空】 圆石
|
||||||
【空】 圆石 【空】
|
【空】 圆石 【空】
|
||||||
【空】 圆石 【空】
|
|
||||||
(3 圆石)
|
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
十六、酿造 (xy_brewing)
|
十六、酿造 (xy_brewing)
|
||||||
@@ -314,15 +312,15 @@
|
|||||||
|
|
||||||
【旗】(x4)【有序】
|
【旗】(x4)【有序】
|
||||||
● 旗(flag)
|
● 旗(flag)
|
||||||
支撑杆 支撑杆 支撑杆
|
支杆 支杆 支杆
|
||||||
绿布 【空】 黄布
|
绿布 【空】 黄布
|
||||||
● 斜纹蓝绿旗(flag_blue_lime_oblique)
|
● 斜纹蓝绿旗(flag_blue_lime_oblique)
|
||||||
蓝布 【空】 【空】
|
支杆 【空】 【空】
|
||||||
支撑杆 蓝布 【空】
|
蓝布 支杆 【空】
|
||||||
【空】 绿布 支撑杆
|
【空】 绿布 支杆
|
||||||
|
|
||||||
【阳伞】(支撑杆 + 对应布)【有序】
|
【阳伞】(支杆 + 对应布)【有序】
|
||||||
支撑杆
|
支杆
|
||||||
对应布
|
对应布
|
||||||
(蓝阳伞=蓝布 / 紫阳伞=紫布 / 红阳伞=红布 / 黄阳伞=黄布 / 绿阳伞=绿布)
|
(蓝阳伞=蓝布 / 紫阳伞=紫布 / 红阳伞=红布 / 黄阳伞=黄布 / 绿阳伞=绿布)
|
||||||
|
|
||||||
@@ -356,36 +354,36 @@
|
|||||||
【空】 铁锭 铁锭
|
【空】 铁锭 铁锭
|
||||||
铁锭 铁锭 铁锭
|
铁锭 铁锭 铁锭
|
||||||
● 晾干架(dryingrack) x2【有序】
|
● 晾干架(dryingrack) x2【有序】
|
||||||
支撑杆 木棍 支撑杆
|
支杆 木棍 支杆
|
||||||
支撑杆 木棍 支撑杆
|
支杆 木棍 支杆
|
||||||
● 铸造台(casting_table)【有序】
|
● 铸造台(casting_table)【有序】
|
||||||
铁粒 铁粒
|
铁粒 铁粒
|
||||||
高炉 砖
|
高炉 砖
|
||||||
● 鱼缸(fishtank)【有序】
|
● 鱼缸(fishtank)【有序】
|
||||||
玻璃 石头
|
玻璃 石头
|
||||||
● 梯子(ladder)【有序】
|
● 梯子(ladder)【有序】
|
||||||
支撑杆 木棍 支撑杆
|
支杆 木棍 支杆
|
||||||
支撑杆 木棍 支撑杆
|
支杆 木棍 支杆
|
||||||
支撑杆 木棍 支撑杆
|
支杆 木棍 支杆
|
||||||
● 钳子(pinchers)【有序】
|
● 钳子(pinchers)【有序】
|
||||||
【空】 铁锭 【空】
|
【空】 铁锭 【空】
|
||||||
【空】 铁锭 铁锭
|
【空】 铁锭 铁锭
|
||||||
皮革 【空】 【空】
|
皮革 【空】 【空】
|
||||||
● 纺纱机(spinner)【有序】
|
● 纺纱机(spinner)【有序】
|
||||||
【空】 【空】 车轮
|
【空】 【空】 车轮
|
||||||
支撑杆 线 线
|
支杆 线 线
|
||||||
支撑杆 【空】 支撑杆
|
支杆 支杆 支杆
|
||||||
● 帐篷(tent) x8【有序】
|
● 帐篷(tent) x8【有序】
|
||||||
任意原版羊毛 【空】 任意原版羊毛
|
任意原版羊毛 【空】 【空】
|
||||||
木板条 任意原版羊毛 【空】
|
任意原版羊毛 木板条 【空】
|
||||||
任意原版羊毛 【空】 【空】
|
任意原版羊毛 【空】 【空】
|
||||||
● 支撑杆(support_rod) 配方1【有序】(3 木棍)
|
● 支杆(support_rod) 配方1【有序】(3 木棍)
|
||||||
木棍 木棍 木棍
|
木棍 木棍 木棍
|
||||||
● 支撑杆(support_rod) 配方2【有序】(6 木板条)
|
● 支杆(support_rod) 配方2【有序】(6 木板条)
|
||||||
木板条 木板条
|
木板条 木板条
|
||||||
木板条 木板条
|
木板条 木板条
|
||||||
木板条 木板条
|
木板条 木板条
|
||||||
● 支撑杆(support_rod) x2 配方3【有序】(3 木板条)
|
● 支杆(rsupport_rod) x2 配方3【有序】(3 木板条)
|
||||||
木板条 木板条 木板条
|
木板条 木板条 木板条
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|||||||
Reference in new issue
Block a user