399: Interactive water pipe valve. [Minecraft Map Making]

Опубликовано: 29 Март 2026
на канале: Infernal Device
447
33

Membership:    / @infernaldevice  
Ep399: A valve we can turn on and off to control the flow of water in our lightning rod pipes.

00:00 Intro
01:40 Setup
02:10 Give egg - place
03:45 Give egg - remove
04:40 Controller - place
06:55 Passenger template
09:15 Controller - place passengers
21:10 Controller - remove
23:05 Controller - input
40:35 Controller - water
43:10 Adding indicator
49:20 Tidy up

Version: 1.20.1

Request by: MiX-mp6us

Commands, builds, hacks and ideas for people making their own Minecraft maps.

Check out my collabs on Coppit's channel:    / coppitj  

Join the CoppitCraft server that I play on and the Discord where I hang out.
Server IP: 51.81.246.145:25588
Discord:   / discord  

The following commands are prefixed with three letters which represent the settings of the command block. E.g IUN: = Impulse Unconditional Needs_Redstone. These prefixes need to be removed if copying the commands.

Commands used:

Setup:
IUN: scoreboard objectives add state dummy

Give Egg - Place:
IUN: give @p slime_spawn_egg[custom_name='{"text":"Valve: Place"}', entity_data={id:"minecraft:marker", Tags:["valve_place"]}]

Give Egg - Remove:
IUN: give @p strider_spawn_egg[custom_name='{"text":"Valve: Remove"}', entity_data={id:"minecraft:marker", Tags:["valve_remove", "valve"]}]

Controller - place:
RUA: execute at @e[type=marker, tag=valve_place] run summon interaction ~ ~0.6 ~ {Tags:["valve", "valve_input"], width:0.8, height:0.45, response:true, Passengers:[{Tags:["valve", "valve_pipe_01"], id:"block_display", block_state:{Name:"lightning_rod"}, transformation:{left_rotation:{axis:[0f,0f,1f], angle:1.57}, right_rotation:[0f,0f,0f,1f], scale:[1f,0.5f,1f], translation:[0f,-0.6f,-0.5f]}},{Tags:["valve", "valve_pipe_02"], id:"block_display", block_state:{Name:"lightning_rod"}, transformation:{left_rotation:{axis:[0f,0f,-1f], angle:1.57}, right_rotation:[0f,0f,0f,1f], scale:[1f,0.5f,1f], translation:[0f,0.4f,-0.5f]}},{Tags:["valve", "valve_uppipe"], id:"block_display", block_state:{Name:"lightning_rod"}, transformation:{left_rotation:[0f,0f,0f,1f], right_rotation:[0f,0f,0f,1f], scale:[1f,0.5f,1f], translation:[-0.5f,-0.05f,-0.5f]}},{Tags:["valve", "valve_handle"], id:"item_display", item:{id:"waxed_copper_trapdoor"}, transformation:{left_rotation:[0f,0f,0f,1f], right_rotation:[0f,0f,0f,1f], scale:[0.8f,0.8f,0.8f], translation:[0f,0.601f,0f]}, interpolation_duration:20}]}
CUA: execute at @e[type=marker, tag=valve_place] run setblock ~ ~ ~ barrier
CUA: kill @e[type=marker, tag=valve_place]

Controller - remove:
RUA: execute at @e[type=marker, tag=valve_remove] run setblock ~ ~-1 ~ air
CUA: execute at @e[type=marker, tag=valve_remove] run kill @e[tag=valve,sort=nearest,limit=6]

Controller:
RUA: execute as @e[type=interaction, tag=valve_input] at @s store success entity @s interaction.player[] int 0 on target as @e[type=interaction, tag=valve_input, distance=..0.1] run tag @s add check_me
CUA: execute as @e[type=interaction, tag=!locked, tag=check_me] store success score @s state if score @s state matches 0
CUA: execute at @e[type=interaction, tag=!locked, tag=check_me, scores={state=0}] as @e[type=item_display, tag=valve_handle, limit=1, sort=nearest] run data merge entity @s {transformation:{left_rotation:[0f,2.402f,0f,1f], translation:[0f,0.699f,0f]}, start_interpolation:0}
CUA: execute at @e[type=interaction, tag=!locked, tag=check_me, scores={state=1}] as @e[type=item_display, tag=valve_handle, limit=1, sort=nearest] run data merge entity @s {transformation:{left_rotation:[0f,0f,0f,1f], translation:[0f,0.601f,0f]}, start_interpolation:0}
CUA: execute at @e[type=interaction, tag=!locked, tag=check_me] run playsound block.copper_door.open master @a ~ ~ ~ 1 0.1 0
CUA: execute at @e[type=interaction, tag=locked, tag=check_me] run playsound block.copper_trapdoor.open master @a ~ ~ ~ 1 0.5 0
CUA: tag @e[type=interaction, tag=check_me] remove check_me

Controller - water
RUA: execute as @e[type=interaction, tag=valve_input, scores={state=0}] at @s run particle falling_water ~-0.55 ~-0.22 ~ 0.01 0.01 0.01 0 10

EXTRA:
Indicator Passengers:
{Tags:["valve", "valve_light"], id:"block_display", block_state:{Name:"green_concrete_powder"}, transformation:{left_rotation:[0f,0f,0f,1f], right_rotation:[0f,0f,0f,1f], scale:[0.1f,0.1f,0.1f], translation:[-0.05f,0.36f,-0.05f]}}

Indicator change:
CUA: execute at @e[type=interaction, tag=!locked, tag=check_me, scores={state=0}] as @e[type=block_display, tag=valve_light, limit=1, sort=nearest] run data merge entity @s {block_state:{Name:"red_concrete_powder"}}
CUA: execute at @e[type=interaction, tag=!locked, tag=check_me, scores={state=1}] as @e[type=block_display, tag=valve_light, limit=1, sort=nearest] run data merge entity @s {block_state:{Name:"green_concrete_powder"}}