ludic/fn-world_get.html
2026-09-17 22:10:03 +00:00

44 lines
No EOL
3.2 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>world_get — Ludic</title>
<meta name="description" content="Read one field of a model instance by numeric id (reflection ABI).">
<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="docs.css">
</head>
<body>
<header class="nav"><div class="wrap nav-in"><a class="brand" href="index.html"><span class="logo">L</span> Ludic</a><button class="nav-toggle" aria-label="Toggle menu" aria-expanded="false">☰</button><nav class="nav-links"><a href="index.html">Home</a><a href="api.html">API Reference</a><a class="nav-cta" href="https://git.workshopsoft.io/workshopsoft/ludic">Source ↗</a></nav></div></header>
<main class="wrap item">
<div class="crumbs"><a href="api.html">API Reference</a> <span>›</span> <a href="api.html#ecs">Entities &amp; the ECS</a> <span>›</span> <span class="here">world_get</span></div>
<div class="item-head">
<span class="kind-badge kind-builtin">function</span>
<h1 id="top">world_get</h1>
</div>
<code class="sig">world_get(target, property, field) -&gt; int</code>
<div class="desc"><p><code>world_get</code> reads a single field of a model instance entirely by numeric id, returning its value as an <code>int</code>. It is the id-based counterpart to the ordinary <code>position.column</code> field access that queries give you — used when the property is not known at compile time, as in a mod or a generic tool. You supply the target instance (an <code>entity</code>), the property id (from <code>world_prop_id</code>), and the field id (from <code>world_field_id</code>); the result is the stored value. Pair it with <code>world_set</code> to write. Reading a field of an instance that lacks the property is not meaningful, so guard with <code>world_has</code> first if unsure.</p></div>
<div class="params"><h2>Parameters</h2><div class="param" id="param-target"><code class="pname">target</code><span class="pdesc">the model instance to read from, an <code>entity</code> handle</span></div><div class="param" id="param-property"><code class="pname">property</code><span class="pdesc">the property id, from <code>world_prop_id</code></span></div><div class="param" id="param-field"><code class="pname">field</code><span class="pdesc">the field id within that property, from <code>world_field_id</code></span></div></div>
<div class="examples"><h2>Example</h2><pre data-lang="ludic">program ReadField {
property Position { column: int = 0, row: int = 0 }
model Player { Position }
handler Boot phase Start {
spawn Hero { Position { column: 7, row: 2 } }
}
handler Inspect phase Update {
let position_property = world_prop_id("Position")
let column_field = world_field_id(position_property, "column")
for (position) in query [Position, {Player}] {
let value = world_get(self(), position_property, column_field)
Screen.status(string(value))
}
}
}</pre></div>
<a class="back" href="api.html">← All symbols</a>
</main>
<script src="ludic-highlight.js"></script>
<script>Ludic.highlightAll(); Ludic.installCards(); Ludic.flashTarget();</script>
</body></html>