黄豆 饮料 冰棍 实现2
This commit is contained in:
1 parent
f89b95fb99
commit
bae1755069
11 files changed
+193
-132
No files matched your search
+12
-6
@@ -96,13 +96,19 @@ POPSICLE_FRUITS = {
|
||||
# 冰棍盒方块 → (水果物品名, 冰棍方块, 口味名) 反向表(取冰棍用)
|
||||
POPSICLE_BOX_INFO = {v[0]: (k, v[1], v[2]) for k, v in POPSICLE_FRUITS.items()}
|
||||
|
||||
# 冰棍堆组合:
|
||||
# popsiclepile_2(橙子+西瓜) + 苹果冰棍 → popsiclepile_3(橙子+西瓜+苹果)
|
||||
# popsiclepile_3 空手取回 → 苹果冰棍, 退回 popsiclepile_2
|
||||
# 冰棍堆组合(顺序无关, 空手取回按方块状态固定, 不存数据):
|
||||
# 单根 橙子冰棍/西瓜冰棍 放在地上, 手持另一根右键 → 冰棍堆(橙子+西瓜 popsiclepile_2)
|
||||
# (先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆(橙子+西瓜))
|
||||
# 冰棍堆 + 苹果冰棍 → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3)
|
||||
# 空手右键(按方块状态固定, 无需记录):
|
||||
# - 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆
|
||||
# - 冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍
|
||||
# (其他口味组合暂无对应堆方块, 不支持堆叠)
|
||||
POPSICLE_PILE_ADD = "rtdd:apple_popsicleplace" # 能插上堆的冰棍
|
||||
POPSICLE_PILE_2 = "rtdd:popsiclepile_2" # 2根堆(基础)
|
||||
POPSICLE_PILE_3 = "rtdd:popsiclepile_3" # 3根堆
|
||||
POPSICLE_SINGLE_ORANGE = "rtdd:orange_popsicle_place" # 单根橙子冰棍(放地上)
|
||||
POPSICLE_SINGLE_MELON = "rtdd:melon_popsicleplace" # 单根西瓜冰棍(放地上)
|
||||
POPSICLE_PILE_2 = "rtdd:popsiclepile_2" # 冰棍堆(橙子+西瓜)
|
||||
POPSICLE_PILE_3 = "rtdd:popsiclepile_3" # 冰棍堆2(橙子+西瓜+苹果)
|
||||
POPSICLE_PILE_ADD = "rtdd:apple_popsicleplace" # 第三根(苹果冰棍)
|
||||
|
||||
# ============================================================================
|
||||
# 四、炒冰盒(冰棍盒·炒冰盒 分组)
|
||||
|
||||
+61
-26
@@ -7,7 +7,7 @@
|
||||
1) 榨汁机(果汁·榨汁饮品): 全流程右键
|
||||
空(juicer) + 水果 → 放入水果(juicer_0, 记录水果类型)
|
||||
→ 榨汁中1/2/3(juicer_1/2/3) → 完成(juicer_4)
|
||||
→ 空手右键取出对应果汁, 还原空
|
||||
→ 手持玻璃杯(fruitjuice_0)右键取出对应果汁, 还原空
|
||||
【水果类型持久化】放入水果时把水果写进方块实体数据(rtdd_jf), 之后每次
|
||||
换态(SetBlockNew 会清空方块实体)都【先读旧→替换→写回新】, 因此玩家
|
||||
在 榨汁2→榨汁3 过程中退出游戏, 重进后取出的果汁仍是第一步放入的水果。
|
||||
@@ -18,10 +18,13 @@
|
||||
3) 炒冰盒(冰棍盒·炒冰盒):
|
||||
空(frytheicebox) + 冰块 → 放冰(frytheicebox_1)
|
||||
放冰 + 水果 → 各水果炒冰盒(appleicebox 等)
|
||||
各水果炒冰盒(除西瓜) 空手右键 → 取出1个冰沙, 还原空
|
||||
4) 冰棍堆(组合, 同厨具架逻辑):
|
||||
popsiclepile_2(橙子+西瓜) + 苹果冰棍 → popsiclepile_3(橙子+西瓜+苹果)
|
||||
popsiclepile_3 空手右键 → 取出苹果冰棍(LIFO), 退回 popsiclepile_2
|
||||
各水果炒冰盒 空手右键 → 取出1个冰沙, 还原空
|
||||
4) 冰棍堆(组合, 顺序无关, 空手取回按方块状态固定, 不存数据):
|
||||
单根 橙子冰棍/西瓜冰棍 放地上 + 手持另一根右键 → 冰棍堆(橙子+西瓜 popsiclepile_2)
|
||||
(先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆)
|
||||
冰棍堆 + 苹果冰棍 → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3)
|
||||
空手右键: 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆;
|
||||
冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍
|
||||
|
||||
【与计时转换解耦】
|
||||
冰棍盒"未定型→定型"的 30 秒计时拆到独立类 YinliaoTimerService。
|
||||
@@ -34,11 +37,11 @@
|
||||
|
||||
【本类怎么做(自上而下的方法系列)】
|
||||
handleBlockUse ← 入口:分发器转发右键方块事件
|
||||
├─ _handleJuicer ← 榨汁机: 放入水果/逐级榨汁/取出果汁
|
||||
├─ _handleJuicer ← 榨汁机: 放入水果/逐级榨汁/手持玻璃杯取出果汁
|
||||
│ ├─ _readFruit / _writeFruit ← 水果类型 读/写(持久化)
|
||||
├─ _handleLollyBox ← 冰棍盒: 加冰块(启动计时)/加水果/取冰棍
|
||||
├─ _handleFryIceBox ← 炒冰盒: 加冰块/加水果/取冰沙
|
||||
└─ _handlePopsiclePile ← 冰棍堆: 插苹果冰棍/取回
|
||||
└─ _handlePopsiclePile ← 冰棍堆: 单根+另一根叠堆/插苹果冰棍/空手取回
|
||||
(通用工具) getCarriedItem / consumeItem / replaceBlock / dropItems / checkCooldown
|
||||
================================================================================
|
||||
"""
|
||||
@@ -63,6 +66,7 @@ from ..YinliaoData import (
|
||||
ICE_ITEMS,
|
||||
JUICE_FRUITS, JUICER_CHAIN, JUICER_ADVANCE_TIPS,
|
||||
ICE_LOLLY_TIMER, POPSICLE_FRUITS, POPSICLE_BOX_INFO,
|
||||
POPSICLE_SINGLE_ORANGE, POPSICLE_SINGLE_MELON,
|
||||
POPSICLE_PILE_ADD, POPSICLE_PILE_2, POPSICLE_PILE_3,
|
||||
FRYICE_FRUITS, FRYICE_BOX_INFO,
|
||||
)
|
||||
@@ -96,7 +100,9 @@ class YinliaoService(BlueFoxServerSystem):
|
||||
self.featureBlocks.add("rtdd:frytheicebox_1")
|
||||
for _f, info in FRYICE_FRUITS.items(): # 各水果炒冰盒
|
||||
self.featureBlocks.add(info[0])
|
||||
self.featureBlocks.add(POPSICLE_PILE_2) # 冰棍堆
|
||||
self.featureBlocks.add(POPSICLE_SINGLE_ORANGE) # 单根橙子冰棍(冰棍堆底)
|
||||
self.featureBlocks.add(POPSICLE_SINGLE_MELON) # 单根西瓜冰棍(冰棍堆底)
|
||||
self.featureBlocks.add(POPSICLE_PILE_2) # 冰棍堆
|
||||
self.featureBlocks.add(POPSICLE_PILE_3)
|
||||
|
||||
# ---- 右键冷却表 ----
|
||||
@@ -146,8 +152,9 @@ class YinliaoService(BlueFoxServerSystem):
|
||||
if blockName == "rtdd:frytheicebox" or blockName == "rtdd:frytheicebox_1" \
|
||||
or blockName in FRYICE_BOX_INFO:
|
||||
return self._handleFryIceBox(blockName, playerId, pos, dim, itemDict, itemName, key)
|
||||
# ---- 冰棍堆 ----
|
||||
if blockName == POPSICLE_PILE_2 or blockName == POPSICLE_PILE_3:
|
||||
# ---- 冰棍堆(含单根橙子/西瓜冰棍作底) ----
|
||||
if blockName == POPSICLE_SINGLE_ORANGE or blockName == POPSICLE_SINGLE_MELON \
|
||||
or blockName == POPSICLE_PILE_2 or blockName == POPSICLE_PILE_3:
|
||||
return self._handlePopsiclePile(blockName, playerId, pos, dim, itemDict, itemName, key)
|
||||
return False
|
||||
|
||||
@@ -186,10 +193,10 @@ class YinliaoService(BlueFoxServerSystem):
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, tip)
|
||||
return True
|
||||
|
||||
# ---- 完成(juicer_4) 空手右键 → 取出果汁, 还原空 ----
|
||||
# ---- 完成(juicer_4) 手持玻璃杯右键 → 取出果汁, 还原空 ----
|
||||
if blockName == "rtdd:juicer_4":
|
||||
if itemName and itemName != "minecraft:air":
|
||||
return False # 必须空手取出, 手持其他物品不处理
|
||||
if itemName != "rtdd:fruitjuice_0":
|
||||
return False # 必须手持玻璃杯(fruitjuice_0)取出, 手持其他物品不处理
|
||||
if not self.checkCooldown(key, 0.5):
|
||||
return True
|
||||
fruit = self._readFruit(pos, dim)
|
||||
@@ -197,6 +204,7 @@ class YinliaoService(BlueFoxServerSystem):
|
||||
if not juiceInfo:
|
||||
return False # 无水果记录(创造直接放置的完成态) → 不反应
|
||||
juiceBlock, juiceName = juiceInfo
|
||||
self.consumeItem(playerId, itemDict, 1) # 消耗玻璃杯(果汁成品自带杯)
|
||||
self.dropItems(dim, pos, [{"name": juiceBlock, "count": 1}])
|
||||
self.replaceBlock(pos, dim, "rtdd:juicer", playerId) # 还原空, 记录随方块清除
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取出了" + juiceName)
|
||||
@@ -306,28 +314,55 @@ class YinliaoService(BlueFoxServerSystem):
|
||||
# ============================================================================
|
||||
|
||||
def _handlePopsiclePile(self, blockName, playerId, pos, dim, itemDict, itemName, key):
|
||||
# ---- 堆(橙子+西瓜) + 苹果冰棍 → 堆2(橙子+西瓜+苹果) ----
|
||||
if blockName == POPSICLE_PILE_2:
|
||||
if itemName != POPSICLE_PILE_ADD:
|
||||
return False
|
||||
# ---- 单根橙子冰棍(地上) + 手持西瓜冰棍 → 冰棍堆(橙子+西瓜) ----
|
||||
if blockName == POPSICLE_SINGLE_ORANGE and itemName == POPSICLE_SINGLE_MELON:
|
||||
if not self.checkCooldown(key, 0.5):
|
||||
return True
|
||||
self.consumeItem(playerId, itemDict, 1)
|
||||
self.replaceBlock(pos, dim, POPSICLE_PILE_3, playerId)
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把苹果冰棍插到冰棍堆上")
|
||||
self.replaceBlock(pos, dim, POPSICLE_PILE_2, playerId)
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把西瓜冰棍叠到橙子冰棍上,变成冰棍堆")
|
||||
return True
|
||||
|
||||
# ---- 堆2 空手右键 → 取出苹果冰棍(后放先取), 退回堆 ----
|
||||
if blockName == POPSICLE_PILE_3:
|
||||
if itemName and itemName != "minecraft:air":
|
||||
return False
|
||||
# ---- 单根西瓜冰棍(地上) + 手持橙子冰棍 → 冰棍堆(橙子+西瓜), 顺序无关 ----
|
||||
if blockName == POPSICLE_SINGLE_MELON and itemName == POPSICLE_SINGLE_ORANGE:
|
||||
if not self.checkCooldown(key, 0.5):
|
||||
return True
|
||||
self.dropItems(dim, pos, [{"name": POPSICLE_PILE_ADD, "count": 1}])
|
||||
self.consumeItem(playerId, itemDict, 1)
|
||||
self.replaceBlock(pos, dim, POPSICLE_PILE_2, playerId)
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取走了苹果冰棍")
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把橙子冰棍叠到西瓜冰棍上,变成冰棍堆")
|
||||
return True
|
||||
|
||||
# ---- 冰棍堆(橙子+西瓜) ----
|
||||
if blockName == POPSICLE_PILE_2:
|
||||
# + 苹果冰棍 → 冰棍堆2(橙子+西瓜+苹果)
|
||||
if itemName == POPSICLE_PILE_ADD:
|
||||
if not self.checkCooldown(key, 0.5):
|
||||
return True
|
||||
self.consumeItem(playerId, itemDict, 1)
|
||||
self.replaceBlock(pos, dim, POPSICLE_PILE_3, playerId)
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a把苹果冰棍插到冰棍堆上,叠成三层")
|
||||
return True
|
||||
# 空手右键 → 取出西瓜冰棍(按方块状态固定), 变回 单根橙子冰棍
|
||||
if not itemName or itemName == "minecraft:air":
|
||||
if not self.checkCooldown(key, 0.5):
|
||||
return True
|
||||
self.dropItems(dim, pos, [{"name": POPSICLE_SINGLE_MELON, "count": 1}])
|
||||
self.replaceBlock(pos, dim, POPSICLE_SINGLE_ORANGE, playerId)
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取走了西瓜冰棍,剩下一根橙子冰棍")
|
||||
return True
|
||||
return False
|
||||
|
||||
# ---- 冰棍堆2(橙子+西瓜+苹果) ----
|
||||
if blockName == POPSICLE_PILE_3:
|
||||
# 空手右键 → 取出苹果冰棍, 退回 冰棍堆
|
||||
if not itemName or itemName == "minecraft:air":
|
||||
if not self.checkCooldown(key, 0.5):
|
||||
return True
|
||||
self.dropItems(dim, pos, [{"name": POPSICLE_PILE_ADD, "count": 1}])
|
||||
self.replaceBlock(pos, dim, POPSICLE_PILE_2, playerId)
|
||||
comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a取走了苹果冰棍")
|
||||
return True
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
# ============================================================================
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"format_version": "1.10",
|
||||
"minecraft:item": {
|
||||
"description": {
|
||||
"identifier": "rtdd:soybean",
|
||||
"category": "xy_ingredients"
|
||||
},
|
||||
"components": {
|
||||
"minecraft:max_stack_size": 64,
|
||||
"minecraft:use_animation": "eat",
|
||||
"minecraft:use_duration": 1.6,
|
||||
"minecraft:food": {
|
||||
"nutrition": 2,
|
||||
"saturation_modifier": "low"
|
||||
}
|
||||
"format_version": "1.10",
|
||||
"minecraft:item": {
|
||||
"components": {
|
||||
"minecraft:food": {
|
||||
"nutrition": 2,
|
||||
"saturation_modifier": "low"
|
||||
},
|
||||
"minecraft:max_stack_size": 64,
|
||||
"minecraft:use_animation": "eat",
|
||||
"minecraft:use_duration": 1.6
|
||||
},
|
||||
"description": {
|
||||
"category": "xy_ingredients",
|
||||
"identifier": "rtdd:soybean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"format_version": "1.10",
|
||||
"minecraft:item": {
|
||||
"description": {
|
||||
"identifier": "rtdd:soybean"
|
||||
},
|
||||
"components": {
|
||||
"minecraft:icon": "soybean"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -640,7 +640,6 @@ tile.rtdd:bowlofrice.name=米饭_1(熟米饭_形态1)
|
||||
tile.rtdd:bowlabeefbonebroth.name=胡萝卜土豆牛骨汤
|
||||
tile.rtdd:carrotandbeef_1.name=炒锅_2(黑椒牛排_熟)
|
||||
itemGroup.tabrtdd=乡野工具
|
||||
itemGroup.tabrtdd=乡野工具
|
||||
tile.rtdd:eggsoup.name=汤锅_42(蛋花汤)
|
||||
tile.rtdd:orangepile.name=土豆堆_2(橘子堆)_禁用
|
||||
tile.rtdd:dead_squid_1.name=死鱿鱼(切掉鱿鱼须)
|
||||
@@ -1235,4 +1234,4 @@ item.rtdd:scallions.name=葱
|
||||
item.rtdd:grape.name=葡萄
|
||||
item.rtdd:peach.name=桃子
|
||||
item.rtdd:orange.name=橙子
|
||||
item.rtdd:soybean.name=黄豆
|
||||
item.rtdd:soybean.name=黄豆
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
@@ -1,71 +1,101 @@
|
||||
{
|
||||
"resource_pack_name": "rtdd",
|
||||
"texture_data": {
|
||||
"cleaver": {
|
||||
"textures": "textures/items/cleaver"
|
||||
},
|
||||
"legsleep": {
|
||||
"textures": "textures/items/legsleep"
|
||||
},
|
||||
"sheeploins": {
|
||||
"textures": "textures/items/sheeploins"
|
||||
},
|
||||
"sheepracks": {
|
||||
"textures": "textures/items/sheepracks"
|
||||
"beancurd": {
|
||||
"textures": "textures/items/beancurd"
|
||||
},
|
||||
"beef_tenderloin": {
|
||||
"textures": "textures/items/beef_tenderloin"
|
||||
},
|
||||
"brownrice": {
|
||||
"textures": "textures/items/rice"
|
||||
},
|
||||
"cleaver": {
|
||||
"textures": "textures/items/cleaver"
|
||||
},
|
||||
"costillavacaes": {
|
||||
"textures": "textures/items/4a3f5c4215600f97c1902db88590a54"
|
||||
},
|
||||
"crab": {
|
||||
"textures": "textures/items/crab"
|
||||
},
|
||||
"crushedgarlic": {
|
||||
"textures": "textures/items/crushedgarlic"
|
||||
},
|
||||
"crushedmeat": {
|
||||
"textures": "textures/items/crushedmeat"
|
||||
},
|
||||
"grape": {
|
||||
"textures": "textures/items/grape"
|
||||
},
|
||||
"ham": {
|
||||
"textures": "textures/items/ham"
|
||||
},
|
||||
"legcow": {
|
||||
"textures": "textures/items/legcow"
|
||||
},
|
||||
"legsleep": {
|
||||
"textures": "textures/items/legsleep"
|
||||
},
|
||||
"lobster": {
|
||||
"textures": "textures/items/lobster"
|
||||
},
|
||||
"noodles": {
|
||||
"textures": "textures/items/raw_pasta"
|
||||
},
|
||||
"oil_chickennuggets": {
|
||||
"textures": "textures/items/oil_chickennuggets"
|
||||
},
|
||||
"oilfish_0": {
|
||||
"textures": "textures/items/oilfish_0"
|
||||
},
|
||||
"oilfrenchfries": {
|
||||
"textures": "textures/items/oilfrenchfries"
|
||||
},
|
||||
"oilpork": {
|
||||
"textures": "textures/items/oilpork"
|
||||
},
|
||||
"oiltempura": {
|
||||
"textures": "textures/items/oiltempura"
|
||||
},
|
||||
"orange": {
|
||||
"textures": "textures/items/ju"
|
||||
},
|
||||
"peach": {
|
||||
"textures": "textures/items/taozi1"
|
||||
},
|
||||
"pepper": {
|
||||
"textures": "textures/items/pepper"
|
||||
},
|
||||
"porkloins": {
|
||||
"textures": "textures/items/porkloins"
|
||||
},
|
||||
"porkrib": {
|
||||
"textures": "textures/items/porkrib"
|
||||
},
|
||||
"ham": {
|
||||
"textures": "textures/items/ham"
|
||||
},
|
||||
"crushedmeat": {
|
||||
"textures": "textures/items/crushedmeat"
|
||||
"potandspoon": {
|
||||
"textures": "textures/items/pot_and_spoon"
|
||||
},
|
||||
"rawsquidwhiskersr": {
|
||||
"textures": "textures/items/rawsquidwhiskersr"
|
||||
},
|
||||
"crab": {
|
||||
"textures": "textures/items/crab"
|
||||
},
|
||||
"lobster": {
|
||||
"textures": "textures/items/lobster"
|
||||
"rtdd:soybean": {
|
||||
"textures": "textures/items/soybean"
|
||||
},
|
||||
"sashimi": {
|
||||
"textures": "textures/items/sashimi"
|
||||
},
|
||||
"thedriedfish": {
|
||||
"textures": "textures/items/thedriedfish"
|
||||
"scallions": {
|
||||
"textures": "textures/items/cong_"
|
||||
},
|
||||
"beancurd": {
|
||||
"textures": "textures/items/beancurd"
|
||||
"sheeploins": {
|
||||
"textures": "textures/items/sheeploins"
|
||||
},
|
||||
"crushedgarlic": {
|
||||
"textures": "textures/items/crushedgarlic"
|
||||
"sheepracks": {
|
||||
"textures": "textures/items/sheepracks"
|
||||
},
|
||||
"oiltempura": {
|
||||
"textures": "textures/items/oiltempura"
|
||||
},
|
||||
"oilfish_0": {
|
||||
"textures": "textures/items/oilfish_0"
|
||||
},
|
||||
"oilpork": {
|
||||
"textures": "textures/items/oilpork"
|
||||
},
|
||||
"oil_chickennuggets": {
|
||||
"textures": "textures/items/oil_chickennuggets"
|
||||
},
|
||||
"oilfrenchfries": {
|
||||
"textures": "textures/items/oilfrenchfries"
|
||||
"soybean": {
|
||||
"textures": "textures/items/soybean"
|
||||
},
|
||||
"spatula": {
|
||||
"textures": "textures/items/guo_chan_"
|
||||
@@ -73,35 +103,8 @@
|
||||
"spatula_oil": {
|
||||
"textures": "textures/items/guo_chan_"
|
||||
},
|
||||
"potandspoon": {
|
||||
"textures": "textures/items/pot_and_spoon"
|
||||
},
|
||||
"pepper": {
|
||||
"textures": "textures/items/pepper"
|
||||
},
|
||||
"brownrice": {
|
||||
"textures": "textures/items/rice"
|
||||
},
|
||||
"noodles": {
|
||||
"textures": "textures/items/raw_pasta"
|
||||
},
|
||||
"costillavacaes": {
|
||||
"textures": "textures/items/4a3f5c4215600f97c1902db88590a54"
|
||||
},
|
||||
"scallions": {
|
||||
"textures": "textures/items/cong_"
|
||||
},
|
||||
"grape": {
|
||||
"textures": "textures/items/grape"
|
||||
},
|
||||
"peach": {
|
||||
"textures": "textures/items/taozi1"
|
||||
},
|
||||
"orange": {
|
||||
"textures": "textures/items/ju"
|
||||
},
|
||||
"soybean": {
|
||||
"textures": "textures/items/soybean"
|
||||
"thedriedfish": {
|
||||
"textures": "textures/items/thedriedfish"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 350 B |
+11
-7
@@ -35,8 +35,9 @@ todo 功能实现的时候需要考虑 玩家退出游戏后 我的步骤已经
|
||||
机制: 右键榨汁完成
|
||||
|
||||
6. 榨汁机(完成) -> 对应果汁
|
||||
转换条件:[右键 进行转换, 取出果汁]
|
||||
机制: 空手右键, 获得 第一步放入水果 对应的果汁(按记录的水果类型)
|
||||
转换条件:[手持 玻璃杯(fruitjuice_0) 右键 进行转换, 消耗1个]
|
||||
机制: 手持玻璃杯右键榨汁机(完成), 消耗1个玻璃杯, 获得 第一步放入水果 对应的果汁
|
||||
(按记录的水果类型, 果汁成品自带杯)
|
||||
- 西瓜 -> 西瓜汁 fruitjuice_1
|
||||
- 橙子 -> 橙汁 fruitjuice_2
|
||||
- 苹果 -> 苹果汁 fruitjuice_3
|
||||
@@ -62,12 +63,15 @@ todo 功能实现的时候需要考虑 玩家退出游戏后 我的步骤已经
|
||||
冰棍盒还原为 冰棍盒(未定型)
|
||||
(按批注: 各水果冰棍盒取完冰棍后应还原成未定型)
|
||||
|
||||
10. 冰棍堆 组合逻辑(同厨具架: 与放入顺序无关, 后放先取)
|
||||
转换条件:[手持 冰棍 右键 冰棍堆 进行堆叠, 消耗1根]
|
||||
机制: 手持冰棍右键冰棍堆, 消耗1根, 按组合成型(先放A再放B == 先放B再放A)
|
||||
10. 冰棍堆 组合逻辑(顺序无关, 空手取回按方块状态固定, 不存数据)
|
||||
转换条件:[手持 冰棍 右键 单根冰棍/冰棍堆 进行堆叠, 消耗1根]
|
||||
机制: 单根 橙子冰棍/西瓜冰棍 放地上, 手持另一根右键 → 冰棍堆(橙子+西瓜) popsiclepile_2
|
||||
顺序无关: 先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆(橙子+西瓜)
|
||||
- 橙子+西瓜 -> 冰棍堆(橙子+西瓜) popsiclepile_2
|
||||
- 橙子+西瓜+苹果 -> 冰棍堆2(橙子+西瓜+苹果) popsiclepile_3
|
||||
取回: 空手右键, 后放先取(LIFO), 取走最后放入的那根冰棍, 形态退回剩余组合
|
||||
- 冰棍堆 + 苹果冰棍 -> 冰棍堆2(橙子+西瓜+苹果) popsiclepile_3
|
||||
取回: 空手右键(按方块状态固定, 无需记录后放入的那根)
|
||||
- 冰棍堆2 -> 取出 苹果冰棍, 退回 冰棍堆
|
||||
- 冰棍堆 -> 取出 西瓜冰棍, 变回 单根橙子冰棍
|
||||
(其他口味组合暂无对应堆方块, 不支持堆叠)
|
||||
|
||||
========================================
|
||||
|
||||
+6
-4
@@ -262,7 +262,7 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
|
||||
一、榨汁机 (果汁·榨汁饮品, juicer 系列, 全流程右键)
|
||||
- 空(juicer) + 水果(消耗1) → 放入水果(juicer_0), 并把水果类型写入方块实体数据(rtdd_jf) [已实现]
|
||||
- 放入水果 → 榨汁中1 → 榨汁中2 → 榨汁中3 → 完成: 右键逐级推进(每级0.5s冷却) [已实现]
|
||||
- 完成(juicer_4) 空手右键 → 掉落对应果汁 + 还原空(juicer) [已实现]
|
||||
- 完成(juicer_4) 手持玻璃杯(fruitjuice_0)右键(消耗1玻璃杯) → 掉落对应果汁 + 还原空(juicer) [已实现]
|
||||
- 果汁由第一步放入的水果决定: 西瓜片→西瓜汁(fruitjuice_1)/橙子→橙汁(_2)/苹果→苹果汁(_3)/
|
||||
桃子→桃子汁(_4)/葡萄→葡萄汁(_6)/黄豆→豆浆(_7) [已实现]
|
||||
- 持久化: 每次换态 SetBlockNew 会清空方块实体, 都"先读旧→替换→写回新", 玩家在 榨汁2→榨汁3
|
||||
@@ -276,9 +276,11 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
|
||||
- 各口味冰棍盒 空手右键 → 掉落2根对应冰棍 + 还原未定型 [已实现]
|
||||
- 定型计时用绝对时间戳写方块实体数据, 退出重进继续计时 [已实现]
|
||||
|
||||
三、冰棍堆 (组合, popsiclepile_2/3)
|
||||
- 冰棍堆(橙子+西瓜 popsiclepile_2) + 苹果冰棍(消耗1) → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) [已实现]
|
||||
- 冰棍堆2 空手右键 → 掉落苹果冰棍(后放先取 LIFO) + 退回冰棍堆 [已实现]
|
||||
三、冰棍堆 (组合, 顺序无关, 空手取回按方块状态固定, 不存数据)
|
||||
- 单根 橙子冰棍/西瓜冰棍 放地上 + 手持另一根右键(消耗1) → 冰棍堆(橙子+西瓜 popsiclepile_2)
|
||||
(先放橙子再放西瓜 == 先放西瓜再放橙子, 都会变成 冰棍堆) [已实现]
|
||||
- 冰棍堆 + 苹果冰棍(消耗1) → 冰棍堆2(橙子+西瓜+苹果 popsiclepile_3) [已实现]
|
||||
- 空手右键: 冰棍堆2 取出 苹果冰棍 → 退回 冰棍堆; 冰棍堆 取出 西瓜冰棍 → 变回 单根橙子冰棍 [已实现]
|
||||
|
||||
四、炒冰盒 (冰棍盒·炒冰盒, frytheicebox 系列)
|
||||
- 空(frytheicebox) + 冰块(消耗1) → 放冰(frytheicebox_1) [已实现]
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
========================================
|
||||
1. 炉灶(空) -> 炉灶(加木条)
|
||||
转换条件:[手持 木条/木块 右键 进行转换,消耗1个]
|
||||
机制: 手持木条右键,消耗1个,加木条
|
||||
机制: 手持木条右键,消耗4个,加木条
|
||||
|
||||
2. 炉灶(加木条) -> 炉灶(点燃)
|
||||
转换条件:[手持 打火石/烈焰弹 右键 进行转换]
|
||||
|
||||
Reference in new issue
Block a user