Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Commands/compute: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Sync: updated from Minecraft
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{wip}}
{{wip}}
{{In development|Java||26.3}}
{{Infobox command
{{Infobox command
|name = compute
|name = compute
Line 6: Line 5:
}}
}}


Evaluates [[Minecraft:number provider]]s in various contexts.
Evaluates [[Minecraft:number provider]]s in various [[Minecraft:loot context]]s.


== Syntax ==
== Syntax ==
: {{cmd|compute <CONTEXT> <provider> [<scale>{{!}}integer]}}
: {{cmd|compute <CONTEXT> float <floatProvider> [<scale>]}}
: {{cmd|compute <CONTEXT> integer <intProvider>}}
: Where {{cd|CONTEXT}} is one of:
: Where {{cd|CONTEXT}} is one of:
:: {{cd|default}}
:: {{cd|default}}
::: Run provider with the [[Minecraft:Loot context#minecraft:command_compute_default|{{cd|minecraft:command_compute_default}}]] context, only providing common parameters (execution position and {{cd|this}} entity).
::: Runs the provider with the [[Minecraft:Loot context#minecraft:command_compute_default|{{cd|minecraft:command_compute_default}}]] context, which provides common parameters such as the execution position and {{cd|this}} entity.
:: {{cd|block <pos>}}
:: {{cd|block <pos>}}
::: Run provider with the [[Minecraft:Loot context#minecraft:command_compute_position|{{cd|minecraft:command_compute_position}}]] context, providing block state and block entity based on the block at {{cd|<pos>}}.
::: Runs the provider with the [[Minecraft:Loot context#minecraft:command_compute_position|{{cd|minecraft:command_compute_position}}]] context, providing the block state and block entity found at {{cd|<pos>}} alongside the common parameters.
:: {{cd|entity <target>}}
:: {{cd|entity <target>}}
::: Run provider with the [[Minecraft:Loot context#minecraft:command_compute_entity|{{cd|minecraft:command_compute_entity}}]] context, providing {{cd|target_entity}} based on the selector result.
::: Runs the provider with the [[Minecraft:Loot context#minecraft:command_compute_entity|{{cd|minecraft:command_compute_entity}}]] context, providing the selected entity as {{cd|target_entity}} alongside the common parameters.
: If {{cd|[<scale>{{!}}integer]}} is set to a number or omitted, the number provider is evaluated in float mode.
 
: If it is set to {{cd|integer}}, the number provider is evaluated in integer mode, truncating after every step.  
Float providers are evaluated to produce a floating-point value, but a command's {{cd|result}} value can only be an integer, so the actual result is rounded down to the nearest integer before being returned. If {{cd|<scale>}} is specified, the result is multiplied by that before being rounded down, allowing more precision to be returned. Integer providers already produce an integer value, so no scaling is needed.
 
To store a float without losing any precision, see {{cmd|data modify ... compute ...}} instead, which avoids passing the value through {{cd|result}}.


== Arguments ==
== Arguments ==
{{expand section}}


{{argument|pos|block_pos}}
{{argument|pos|block_pos}}
: Specifies a block that will be available to the number provider.
: Specifies the block whose state and block entity are made available to the number provider.
: {{arg desc|je=block_pos}}
: {{arg desc|je=block_pos}}


{{argument|target|entity}}
{{argument|target|entity}}
: Specifies an entity that will be available to the number provider.
: Specifies the entity whose data is made available to the number provider as {{cd|target_entity}}.
: {{arg desc|je=entity|amount=single|type=entities}}
: {{arg desc|je=entity|amount=single|type=entities}}


{{argument|provider|number_provider}}
{{argument|floatProvider|context_float_provider}}
: Specifies the [[Minecraft:number provider]] to evaluate.
: Specifies the [[Minecraft:context float provider]] to evaluate. Can be an [[Minecraft:identifier]] or an inline definition.
: {{arg desc|je=number_provider}}
: {{arg desc|je=context_float_provider}}
 
{{argument|intProvider|context_int_provider}}
: Specifies the [[Minecraft:context int provider]] to evaluate. Can be an [[Minecraft:identifier]] or an inline definition.
: {{arg desc|je=context_int_provider}}


{{argument|scale|float}}
{{argument|scale|float}}
: The result of the provider will be scaled by this value and rounded towards negative infinity for command output.
: Specifies the value by which the float provider's result is multiplied.
: If omitted, {{cd|1.0}} is used.
: The resulting value is rounded down to the nearest integer after scaling.
: {{arg desc|je=float}}
: {{arg desc|je=float}}


== Result ==
== Result ==
{{Empty section}}
{{Result table|onlyje=1}}
{{Result table|The command is incomplete, or any argument is not specified correctly.|unparseable}}
{{Result table|The number provider cannot be evaluated in the specified context.|fail}}
{{Result table|The number provider is successfully evaluated.|succeed}}
{{Result table}}


== Output ==
== Output ==
{{Empty section}}
{{Output table}}
{{Output table|edition=je|On fail|0|0}}
{{Output table|cmd=/compute ... float ...|On success|1|1|the computed result, scaled and then rounded down}}
{{Output table|cmd=/compute ... integer ...|On success|1|1|the computed result}}
{{Output table}}
 
When the provider has a registered identifier, a successful command also displays its identifier and the computed result. In float mode, if scaling and rounding change the provider's original value, the output also displays the original floating-point value.


== History ==
== History ==
{{HistoryTable
{{HistoryTable
|{{HistoryLine|upcoming java}}
|{{HistoryLine|java}}
|{{HistoryLine||26.3|dev=snap10|Added {{cmd|link=none|compute}}.}}
|{{HistoryLine||26.3|dev=snap10|Added {{cmd|link=none|compute}}.}}
|{{HistoryLine||26.3|dev=pre1|Adjusted command syntax to match the separation of number providers into int and float providers.}}
}}
}}


Line 55: Line 73:
{{Navbox commands}}
{{Navbox commands}}


[[Minecraft:de:Befehl/compute]]
[[Minecraft:ja:コマンド/compute]]
[[Minecraft:zh:命令/compute]]
[[Minecraft:zh:命令/compute]]

Latest revision as of 11:06, 16 October 2026

Template:Wip Template:Infobox command

Evaluates Minecraft:number providers in various Minecraft:loot contexts.

Syntax

Template:Cmd
Template:Cmd
Where Template:Cd is one of:
Template:Cd
Runs the provider with the [[Minecraft:Loot context#minecraft:command_compute_default|Template:Cd]] context, which provides common parameters such as the execution position and Template:Cd entity.
Template:Cd
Runs the provider with the [[Minecraft:Loot context#minecraft:command_compute_position|Template:Cd]] context, providing the block state and block entity found at Template:Cd alongside the common parameters.
Template:Cd
Runs the provider with the [[Minecraft:Loot context#minecraft:command_compute_entity|Template:Cd]] context, providing the selected entity as Template:Cd alongside the common parameters.

Float providers are evaluated to produce a floating-point value, but a command's Template:Cd value can only be an integer, so the actual result is rounded down to the nearest integer before being returned. If Template:Cd is specified, the result is multiplied by that before being rounded down, allowing more precision to be returned. Integer providers already produce an integer value, so no scaling is needed.

To store a float without losing any precision, see Template:Cmd instead, which avoids passing the value through Template:Cd.

Arguments

Template:Argument

Specifies the block whose state and block entity are made available to the number provider.
Template:Arg desc

Template:Argument

Specifies the entity whose data is made available to the number provider as Template:Cd.
Template:Arg desc

Template:Argument

Specifies the Minecraft:context float provider to evaluate. Can be an Minecraft:identifier or an inline definition.
Template:Arg desc

Template:Argument

Specifies the Minecraft:context int provider to evaluate. Can be an Minecraft:identifier or an inline definition.
Template:Arg desc

Template:Argument

Specifies the value by which the float provider's result is multiplied.
If omitted, Template:Cd is used.
The resulting value is rounded down to the nearest integer after scaling.
Template:Arg desc

Result

Template:Result table Template:Result table Template:Result table Template:Result table Template:Result table

Output

Template:Output table Template:Output table Template:Output table Template:Output table Template:Output table

When the provider has a registered identifier, a successful command also displays its identifier and the computed result. In float mode, if scaling and rounding change the provider's original value, the output also displays the original floating-point value.

History

Template:HistoryTable

Navigation

Template:Navbox new content Template:Navbox commands

Minecraft:de:Befehl/compute Minecraft:ja:コマンド/compute Minecraft:zh:命令/compute