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

40 lines
No EOL
2.5 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_model_id — Ludic</title>
<meta name="description" content="Resolve a model&#x27;s name to its stable numeric id.">
<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_model_id</span></div>
<div class="item-head">
<span class="kind-badge kind-builtin">function</span>
<h1 id="top">world_model_id</h1>
</div>
<code class="sig">world_model_id(name) -&gt; int</code>
<div class="desc"><p><code>world_model_id</code> looks up a model by name and returns its stable numeric id, or a negative value if no model of that name exists. It is part of Ludic's reflection ABI — the dynamic, id-based view of the world that mods and tools use alongside the static <code>spawn</code>/<code>query</code> forms. You typically resolve a name to an id once and then feed that id to id-based calls such as <code>world_spawn</code> or <code>world_kind</code>. Because the id is stable for a given build, it is safe to cache in a <code>var</code>.</p></div>
<div class="params"><h2>Parameters</h2><div class="param" id="param-name"><code class="pname">name</code><span class="pdesc">the model's name, as a string, e.g. <code>"Player"</code></span></div></div>
<div class="examples"><h2>Example</h2><pre data-lang="ludic">program ResolveModel {
property Position { column: int = 0, row: int = 0 }
model Player { Position }
handler Boot phase Start {
spawn Hero { Position { column: 3, row: 3 } }
}
handler Inspect phase Update {
let player_model = world_model_id("Player")
Screen.status(string(player_model))
}
}</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>