382 lines
26 KiB
HTML
382 lines
26 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/styles/vs2015.min.css">
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/highlight.min.js"></script>
|
|
<script src="/searchIndex.js"></script>
|
|
<script>
|
|
hljs.initHighlightingOnLoad();
|
|
</script>
|
|
<title>People Playground Modding - Home</title>
|
|
<link rel="shortcut icon" href="/media/icon.png" type="image/png">
|
|
<script>
|
|
function fetchToElem(path, elem, oncomplete) {
|
|
fetch(path, {
|
|
method: "GET"
|
|
}).then(d => d.text()).then(result => {
|
|
elem.textContent = result;
|
|
if (oncomplete)
|
|
oncomplete();
|
|
})
|
|
}
|
|
</script>
|
|
<style>
|
|
html,
|
|
body {
|
|
font-family: 'Inter', sans-serif;
|
|
margin: 5px;
|
|
}
|
|
|
|
.content {
|
|
/* max-width: 1900px; */
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
display: grid;
|
|
grid-template-columns: 310px 1fr 160px;
|
|
grid-template-rows: 24px auto;
|
|
justify-items: stretch;
|
|
align-items: start;
|
|
grid-gap: 6px;
|
|
grid-template-areas: "sidebar breadcrumbs search" "sidebar page page";
|
|
height: 100%;
|
|
}
|
|
|
|
.logo {
|
|
width: 100%;
|
|
height: 128px;
|
|
background-size: contain;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.sidebar {
|
|
background-color: rgb(250, 250, 250);
|
|
padding: 25px;
|
|
font-size: 100%;
|
|
grid-area: sidebar;
|
|
margin-right: 8px;
|
|
align-self: stretch;
|
|
}
|
|
|
|
.sidebar-links {
|
|
margin-top: 10px;
|
|
display: block;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
.sidebar-links * {
|
|
display: block;
|
|
margin: 0;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.sidebar-links a {
|
|
color: rgb(35, 35, 245);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.sidebar-links a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.sidebar>.title {
|
|
font-weight: bold;
|
|
font-size: 125%;
|
|
text-align: center;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.sidebar-links span {
|
|
display: block;
|
|
}
|
|
|
|
.sidebar-links>span span {
|
|
padding-left: 10px;
|
|
border-left: 1px solid rgb(200, 200, 200);
|
|
}
|
|
|
|
.page {
|
|
grid-area: page;
|
|
position: relative;
|
|
}
|
|
|
|
.page .obsolete-message {
|
|
display: none;
|
|
}
|
|
|
|
.page.obsolete-member .obsolete-message {
|
|
display: block;
|
|
background: #d42c5e;
|
|
color: white;
|
|
width: 250px;
|
|
height: min-content;
|
|
padding: 10px;
|
|
position: absolute;
|
|
right: 20px;
|
|
top: 20px;
|
|
opacity: 90%;
|
|
}
|
|
|
|
.obsolete-message p {
|
|
margin: 5px 0;
|
|
}
|
|
|
|
.page.obsolete-member {
|
|
box-shadow: inset rgba(0, 0, 0, 0.25) 0px -3px 16px 0px;
|
|
background-color: whitesmoke;
|
|
}
|
|
|
|
.page.obsolete-member>*:not(.obsolete-message) {
|
|
transform: rotateZ(1deg);
|
|
filter: saturate(70%);
|
|
}
|
|
|
|
.page code:not(.hljs) {
|
|
font-size: 115%;
|
|
color: #d42c5e;
|
|
}
|
|
|
|
.search {
|
|
grid-area: search;
|
|
}
|
|
|
|
.search>input {
|
|
width: 100%;
|
|
font-family: inherit;
|
|
border: 1px solid gray;
|
|
outline: none;
|
|
padding: 3px;
|
|
}
|
|
|
|
.breadcrumbs {
|
|
grid-area: breadcrumbs;
|
|
}
|
|
|
|
.breadcrumbs>* {
|
|
text-decoration: none;
|
|
color: gray;
|
|
}
|
|
|
|
.breadcrumbs>*:not(:first-child)::before {
|
|
content: "> ";
|
|
}
|
|
|
|
.search-results {
|
|
display: none;
|
|
}
|
|
|
|
.search-results>a {
|
|
display: block;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.dim {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
#table-of-contents {
|
|
padding: 10px;
|
|
display: inline-block;
|
|
border: 1px solid gray;
|
|
}
|
|
|
|
blockquote {
|
|
color: #FF0061;
|
|
font-style: italic;
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
function createTableOfContents(containingElement) {
|
|
const headers = document.querySelectorAll("h2, h3, h4, h5");
|
|
|
|
const title = document.createElement("span");
|
|
title.innerHTML = "<b>Contents</b>";
|
|
containingElement.appendChild(title);
|
|
|
|
for (const header of headers) {
|
|
let offset = 0;
|
|
switch (header.tagName.toLowerCase()) {
|
|
case "h2":
|
|
offset = 10;
|
|
break;
|
|
case "h3":
|
|
offset = 20;
|
|
break;
|
|
case "h4":
|
|
offset = 30;
|
|
break;
|
|
case "h5":
|
|
offset = 40;
|
|
break;
|
|
}
|
|
const elem = document.createElement("a");
|
|
elem.style.display = "block";
|
|
elem.style.marginLeft = offset + "px";
|
|
elem.href = window.location.pathname + "#" + header.id;
|
|
elem.innerText = header.innerText;
|
|
containingElement.appendChild(elem);
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="content">
|
|
<div class="sidebar">
|
|
<div class="logo" style="background-image: url(/media/icon.png)"></div>
|
|
<div class="title">People Playground Modding</div>
|
|
<div class="sidebar-link-wrapper">
|
|
<div class="sidebar-links">
|
|
<span><a href="/index.html">Home</a><span></span><a href="/intro.html">Introduction</a><span><a href="/intro/fileStructure.html">File Structure</a><span></span><a href="/intro/boilerplate.html">Empty mod template</a><span></span></span><a href="/details.html">Details</a><span><a href="/details/layers.html">Layers</a><span></span><a href="/details/lifecycle.html">Mod Lifecycle</a><span></span><a href="/details/meta.html">Metadata</a><span></span><a href="/details/readme.html">Extended mod description</a><span></span><a href="/details/scriptFiles.html">Script Files</a><span></span><a href="/details/shadyCodeRejection.html">Shady Code Rejection</a><span></span><a href="/details/unity.html">The Unity Engine</a><span></span><a href="/details/builtInComponents.html">Built-in components</a><span></span></span><a href="/gameAssets.html">Game assets</a><span></span><a href="/tutorials.html">Tutorials</a><span><a href="/tutorials/tutorialCreatingMod.html">Creating a mod</a><span></span><a href="/tutorials/tutorialCustomItem.html">Creating a custom item</a><span></span><a href="/tutorials/tutorialCustomBehaviour.html">Creating a custom behaviour</a><span></span><a href="/tutorials/tutorialCustomSyringe.html">Creating a custom syringe</a><span></span><a href="/tutorials/tutorialCustomLiquid.html">Creating a custom liquid</a><span></span><a href="/tutorials/tutorialCustomGun.html">Creating a gun with a custom projectile</a><span></span><a href="/tutorials/tutorialCustomAttachment.html">Creating a custom weapon attachment</a><span></span><a href="/tutorials/tutorialSerialisation.html">Saving, loading, copying, and pasting</a><span></span><a href="/tutorials/tutorialMixing.html">Custom liquid mixers</a><span></span></span><a href="/snippets.html">Code snippets</a><span><a href="/snippets/cartridges.html">Cartridges</a><span></span><a href="/snippets/materials.html">Materials</a><span></span><a href="/snippets/particles.html">Particle effects</a><span></span><a href="/snippets/physicalProperties.html">Physical properties</a><span></span><a href="/snippets/spawnables.html">Spawnable items</a><span></span><a href="/snippets/activation.html">Activation action</a><span></span><a href="/snippets/assignTextures.html">Random sprite assignment</a><span></span><a href="/snippets/backgroundScriptCreation.html">Creating a background script</a><span></span><a href="/snippets/changeEnvironmentSettings.html">Change environment settings</a><span></span><a href="/snippets/createExplosion.html">Create an explosion</a><span></span><a href="/snippets/createLight.html">Creating a light</a><span></span><a href="/snippets/customHuman.html">Custom human sprite</a><span></span><a href="/snippets/debug.html">Debug drawing</a><span></span><a href="/snippets/editingExistingItems.html">Editing pre-existing items</a><span></span><a href="/snippets/entrypoint.html">Empty entry point</a><span></span><a href="/snippets/eventListening.html">Listen for events</a><span></span><a href="/snippets/mapId.html">Map IDs</a><span></span><a href="/snippets/registerItem.html">Registering an item</a><span></span><a href="/snippets/simpleGun.html">Adding a firearm</a><span></span><a href="/snippets/spawnParticle.html">Spawn particles on activation</a><span></span><a href="/snippets/texturePackSystem.html">Basic texture pack system</a><span></span></span><a href="/internalReference.html">Source documentation</a><span><a href="/internalReference/AcceleratorBoltBehaviour.html">AcceleratorBoltBehaviour</a><span></span><a href="/internalReference/AcceleratorGunBehaviour.html">AcceleratorGunBehaviour</a><span></span><a href="/internalReference/AcidPoison.html">AcidPoison</a><span></span><a href="/internalReference/AcidPoolBehaviour.html">AcidPoolBehaviour</a><span></span><a href="/internalReference/AcidSyringe.html">AcidSyringe</a><span></span><a href="/internalReference/AcidSyringe_AcidLiquid.html">AcidSyringe.AcidLiquid</a><span></span><a href="/internalReference/ActionCategory.html">ActionCategory</a><span></span><a href="/internalReference/ActionControlBehaviour.html">ActionControlBehaviour</a><span></span><a href="/internalReference/ActionRepresentation.html">ActionRepresentation</a><span></span><a href="/internalReference/ActionUniverse.html">ActionUniverse</a><span></span><a href="/internalReference/ActivateIfExpandedGore.html">ActivateIfExpandedGore</a><span></span><a href="/internalReference/ActivateIfTutorial.html">ActivateIfTutorial</a><span></span><a href="/internalReference/ActivationEvent.html">Activations.ActivationEvent</a><span></span><a href="/internalReference/ActivationEventType.html">Activations.ActivationEventType</a><span></span><a href="/internalReference/ActivationPropagation.html">ActivationPropagation</a><span></span><a href="/internalReference/ActivationSource.html">Activations.ActivationSource</a><span></span><a href="/internalReference/ActivationTarget.html">Activations.ActivationTarget</a><span></span><a href="/internalReference/ActivationToggleBehaviour.html">ActivationToggleBehaviour</a><span></span><a href="/internalReference/ActivationTransformerBehaviour.html">ActivationTransformerBehaviour</a><span></span><a href="/internalReference/ActivatorElectrodeBehaviour.html">ActivatorElectrodeBehaviour</a><span></span><a href="/internalReference/ActiveSettingIfNotVsync.html">ActiveSettingIfNotVsync</a><span></span><a href="/internalReference/ActOnBlast.html">ActOnBlast</a><span></span><a href="/internalReference/ActOnCollide.html">ActOnCollide</a><span></span><a href="/internalReference/ActOnDestroy.html">ActOnDestroy</a><span></span><a href="/internalReference/ActOnDisintegrate.html">ActOnDisintegrate</a><span></span><a href="/internalReference/ActOnHingeJointLimit.html">ActOnHingeJointLimit</a><span></span><a href="/internalReference/ActOnShot.html">ActOnShot</a><span></span><a href="/internalReference/ActOnSliderJointLimit.html">ActOnSliderJointLimit</a><span></span><a href="/internalReference/ActOnUserDelete.html">ActOnUserDelete</a><span></span><a href="/internalReference/AddForceBehaviour.html">AddForceBehaviour</a><span></span><a href="/internalReference/AdhesiveCouplerBehaviour.html">AdhesiveCouplerBehaviour</a><span></span><a href="/internalReference/AdhesiveCouplerBehaviour_Connection.html">AdhesiveCouplerBehaviour.Connection</a><span></span><a href="/internalReference/AdrenalinePoison.html">AdrenalinePoison</a><span></span><a href="/internalReference/AdrenalineSyringe.html">AdrenalineSyringe</a><span></span><a href="/internalReference/AdrenalineSyringe_AdrenalineLiquid.html">AdrenalineSyringe.AdrenalineLiquid</a><span></span><a href="/internalReference/AerialFaithPlateBehaviour.html">AerialFaithPlateBehaviour</a><span></span><a href="/internalReference/AirfoilBehaviour.html">AirfoilBehaviour</a><span></span><a href="/internalReference/AirfoilBehaviour_WingType.html">AirfoilBehaviour.WingType</a><span></span><a href="/internalReference/AliveBehaviour.html">AliveBehaviour</a><span></span><a href="/internalReference/AmbientTemperatureGridBehaviour.html">AmbientTemperatureGridBehaviour</a><span></span><a href="/internalReference/AmbientTemperatureGridBehaviour_Cell.html">AmbientTemperatureGridBehaviour.Cell</a><span></span><a href="/internalReference/AndroidLaserBehaviour.html">AndroidLaserBehaviour</a><span></span><a href="/internalReference/AndroidSparkCreator.html">AndroidSparkCreator</a><span></span><a href="/internalReference/AntiAliasing.html">AntiAliasing</a><span></span><a href="/internalReference/AntiAliasingRadioButton.html">AntiAliasingRadioButton</a><span></span><a href="/internalReference/AOEPowerTool.html">AOEPowerTool</a><span></span><a href="/internalReference/AppearWhenMouseNear.html">AppearWhenMouseNear</a><span></span><a href="/internalReference/ApplicationQuitButtonBehaviour.html">ApplicationQuitButtonBehaviour</a><span></span><a href="/internalReference/AppliedBandageBehaviour.html">AppliedBandageBehaviour</a><span></span><a href="/internalReference/ArchelixCasterBehaviour.html">ArchelixCasterBehaviour</a><span></span><a href="/internalReference/ArchelixCasterBoltBehaviour.html">ArchelixCasterBoltBehaviour</a><span></span><a href="/internalReference/ArrayCloner.html">ArrayCloner</a><span></span><a href="/internalReference/AtomBombBehaviour.html">AtomBombBehaviour</a><span></span><a href="/internalReference/AtomBombExplosionBehaviour.html">AtomBombExplosionBehaviour</a><span></span><a href="/internalReference/AudioSourceTimeScaleBehaviour.html">AudioSourceTimeScaleBehaviour</a><span></span><a href="/internalReference/AudioSourceToggleBehaviour.html">AudioSourceToggleBehaviour</a><span></span><a href="/internalReference/AutoCompleteSearchType.html">UnityEngine.UI.Extensions.AutoCompleteSearchType</a><span></span><a href="/internalReference/AutomaticSentryController.html">AutomaticSentryController</a><span></span><a href="/internalReference/AutomaticWheelJointCreator.html">AutomaticWheelJointCreator</a><span></span><a href="/internalReference/BackgroundItemLoader.html">BackgroundItemLoader</a><span></span><a href="/internalReference/BackgroundItemLoaderStatusBehaviour.html">BackgroundItemLoaderStatusBehaviour</a><span></span><a href="/internalReference/BallisticsEmitter.html">BallisticsEmitter</a><span></span><a href="/internalReference/BallisticsEmitter_CallbackParams.html">BallisticsEmitter.CallbackParams</a><span></span><a href="/internalReference/BalloonBehaviour.html">BalloonBehaviour</a><span></span><a href="/internalReference/BandageBehaviour.html">BandageBehaviour</a><span></span><a href="/internalReference/BandageWireTool.html">BandageWireTool</a><span></span><a href="/internalReference/BaseBoltBehaviour.html">BaseBoltBehaviour</a><span></span><a href="/internalReference/BaseControlNames.html">BaseControlNames</a><span></span><a href="/internalReference/BathroomMirrorController.html">BathroomMirrorController</a><span></span><a href="/internalReference/BatteryAttachmentBehaviour.html">BatteryAttachmentBehaviour</a><span></span><a href="/internalReference/BeamCannonBehaviour.html">BeamCannonBehaviour</a><span></span><a href="/internalReference/BeamformerBehaviour.html">BeamformerBehaviour</a><span></span><a href="/internalReference/BeamRepeaterBehaviour.html">BeamRepeaterBehaviour</a><span></span><a href="/internalReference/BehaviourManager.html">BehaviourManager<T></a><span></span><a href="/internalReference/BellBehaviour.html">BellBehaviour</a><span></span><a href="/internalReference/BellClip.html">BellClip</a><span></span><a href="/internalReference/BellClipContainer.html">BellClipContainer</a><span></span><a href="/internalReference/BetterLightMapGenerator.html">BetterLightMapGenerator</a><span></span><a href="/internalReference/BetterLightMapGenerator_BoundingBox.html">BetterLightMapGenerator.BoundingBox</a><span></span><a href="/internalReference/BetterLightMapGenerator_Properties.html">BetterLightMapGenerator.Properties</a><span></span><a href="/internalReference/BetterLightMapGenerator_Vertex.html">BetterLightMapGenerator.Vertex</a><span></span><a href="/internalReference/BlackHoleBehaviour.html">BlackHoleBehaviour</a><span></span><a href="/internalReference/BlackHoleContainerBehaviour.html">BlackHoleContainerBehaviour</a><span></span><a href="/internalReference/BlasterBehaviour.html">BlasterBehaviour</a><span></span><a href="/internalReference/BlasterboltBehaviour.html">BlasterboltBehaviour</a><span></span><a href="/internalReference/BleedingParticleBehaviour.html">BleedingParticleBehaviour</a><span></span><a href="/internalReference/Blood.html">Blood</a><span></span><a href="/internalReference/BloodContainer.html">BloodContainer</a><span></span><a href="/internalReference/BloodContainer_PressureDirection.html">BloodContainer.PressureDirection</a><span></span><a href="/internalReference/BloodContainer_RefFloat.html">BloodContainer.RefFloat</a><span></span><a href="/internalReference/BloodContainer_SerialisableDistribution.html">BloodContainer.SerialisableDistribution</a><span></span><a href="/internalReference/BloodExplosionBehaviour.html">BloodExplosionBehaviour</a><span></span><a href="/internalReference/BloodImpactBehaviour.html">BloodImpactBehaviour</a><span></span><a href="/internalReference/BloodTankBehaviour.html">BloodTankBehaviour</a><span></span><a href="/internalReference/BloodTankBehaviour_TankMode.html">BloodTankBehaviour.TankMode</a><span></span><a href="/internalReference/BloodWireBehaviour.html">BloodWireBehaviour</a><span></span><a href="/internalReference/BloodWireTool.html">BloodWireTool</a><span></span><a href="/internalReference/BloomMode.html">BloomMode</a><span></span><a href="/internalReference/BloomModeRadioButton.html">BloomModeRadioButton</a><span></span><a href="/internalReference/BlueUseWireTool.html">BlueUseWireTool</a><span></span><a href="/internalReference/BoatMotorBehaviour.html">BoatMotorBehaviour</a><span></span><a href="/internalReference/BooleanRadioButton.html">BooleanRadioButton</a><span></span><a href="/internalReference/BoundingBoxBehaviour.html">BoundingBoxBehaviour</a><span></span><a href="/internalReference/BreakJointOnBurnBehaviour.html">BreakJointOnBurnBehaviour</a><span></span><a href="/internalReference/BreakJointOnShotBehaviour.html">BreakJointOnShotBehaviour</a><span></span><a href="/internalReference/BugReportFormBehaviour.html">BugReportFormBehaviour</a><span></span><a href="/internalReference/BulbBehaviour.html">BulbBehaviour</a><span></span><a href="/internalReference/BulletTracerPool.html">BulletTracerPool</a><span></span><a href="/internalReference/BurnableSpriteBehaviour.html">BurnableSpriteBehaviour</a><span></span><a href="/internalReference/BurnerBehaviour.html">BurnerBehaviour</a><span></span><a href="/internalReference/BusGeneratorBehaviour.html">BusGeneratorBehaviour</a><span></span><a href="/internalReference/ButtonBehaviour.html">ButtonBehaviour</a><span></span><a href="/internalReference/CableBehaviour.html">CableBehaviour</a><span></span><a href="/internalReference/CableWireTool.html">CableWireTool</a><span></span><a href="/internalReference/CameraControlBehaviour.html">CameraControlBehaviour</a><span></span><a href="/internalReference/CameraShakeBehaviour.html">CameraShakeBehaviour</a><span></span><a href="/internalReference/CameraSyncBehaviour.html">CameraSyncBehaviour</a><span></span><a href="/internalReference/CannotShare.html">CannotShare</a><span></span><a href="/internalReference/CarBehaviour.html">CarBehaviour</a><span></span><a href="/internalReference/CardiopulmonaryBypassMachineBehaviour.html">CardiopulmonaryBypassMachineBehaviour</a><span></span><a href="/internalReference/Cartridge.html">Cartridge</a><span></span><a href="/internalReference/CatalogBehaviour.html">CatalogBehaviour</a><span></span><a href="/internalReference/CatalogData.html">CatalogData</a><span></span><a href="/internalReference/CatalogDropdownBehaviour.html">CatalogDropdownBehaviour</a><span></span><a href="/internalReference/CatalogToggleBehaviour.html">CatalogToggleBehaviour</a><span></span><a href="/internalReference/Category.html">Category</a><span></span><a href="/internalReference/CategoryButtonBehaviour.html">CategoryButtonBehaviour</a><span></span><a href="/internalReference/CeilingTurretBehaviour.html">CeilingTurretBehaviour</a><span></span></span></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="breadcrumbs">
|
|
<a href="/index.html">Home</a>
|
|
|
|
</div>
|
|
<div class="search">
|
|
<input id="search-bar" type="text" placeholder="Search..." />
|
|
</div>
|
|
<div class="page" id="markdown-result">
|
|
<h1 id="home">Home</h1>
|
|
<h3 id="welcome-to-the-people-playground-modding-wiki"><em>Welcome to the People Playground modding wiki!</em></h3>
|
|
<p>This wiki covers modding People Playground, assuming you have at least a basic understanding of C#. It is always updated to the latest version of the game. Some behaviour described here may differ in older versions.</p>
|
|
<p>It is recommended you start out with <a href="./tutorials.html">the tutorials</a> and read some of <a href="./intro/snippets.html">the snippets</a> to get an idea of how things work. Refer to the documentation for more details.</p>
|
|
<style>
|
|
.home-buttons{
|
|
display: grid;
|
|
grid-template-rows: 50% 50%;
|
|
grid-template-columns: 50% 50%;
|
|
width: 100%;
|
|
}
|
|
|
|
.home-buttons > *
|
|
{
|
|
align-self: center;
|
|
justify-self: center;
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
.home-button
|
|
{
|
|
text-align: center;
|
|
width: 240px;
|
|
padding: 20px;
|
|
background: #d42c5e;
|
|
color: white;
|
|
margin: 10px;
|
|
transition: background-color 120ms ease-in-out;
|
|
cursor: pointer;
|
|
text-decoration: none !important;
|
|
}
|
|
|
|
.home-button:hover{
|
|
background: #f0376e;
|
|
}
|
|
</style>
|
|
<div class="home-buttons">
|
|
<a href="./tutorials.html">
|
|
<div class="home-button">
|
|
Tutorials
|
|
</div>
|
|
</a>
|
|
<a href="./gameAssets.html">
|
|
<div class="home-button">
|
|
Sprites and object hierarchies
|
|
</div>
|
|
</a>
|
|
<a href="./internalReference.html">
|
|
<div class="home-button">
|
|
Game code documentation
|
|
</div>
|
|
</a>
|
|
<a href="./snippets.html">
|
|
<div class="home-button">
|
|
Code snippets
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="obsolete-message">
|
|
<b>Attention!</b>
|
|
<p>This member is obsolete and should not be used. It is a remnant from the past.</p>
|
|
</div>
|
|
</div>
|
|
<div class="search-results page" id="search-results">
|
|
bi bij bibi
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
|
|
const searchResults = document.getElementById("search-results");
|
|
const markdownPage = document.getElementById("markdown-result");
|
|
const searchBar = document.getElementById("search-bar");
|
|
searchBar.addEventListener("keypress", (e) => {
|
|
if (e.key == "Enter") {
|
|
const k = encodeURIComponent(searchBar.value);
|
|
const url = new URL(window.location);
|
|
url.searchParams.set("search", k);
|
|
window.location = url;
|
|
}
|
|
});
|
|
|
|
if (urlParams.has("search")) {
|
|
const k = decodeURIComponent(urlParams.get("search"));
|
|
const r = search(k);
|
|
searchBar.value = k;
|
|
generateSearchPage(k, r);
|
|
}
|
|
|
|
function search(phrase) {
|
|
const results = [];
|
|
|
|
phrase = phrase.normalize().toLowerCase();
|
|
phrase = phrase.replace(/\s+/g, "");
|
|
|
|
console.log(phrase);
|
|
|
|
for (var i of searchIndex) {
|
|
if (i.Keywords?.includes(phrase))
|
|
results.push(i);
|
|
}
|
|
|
|
return results
|
|
}
|
|
|
|
function stringDistance(a, b) {
|
|
let delta = 0;
|
|
const lengthDelta = Math.abs(a.length - b.length);
|
|
for (let i = 0; i < Math.min(a.length, b.length); i++) {
|
|
if (a[i] != b[i])
|
|
delta++;
|
|
}
|
|
return delta + lengthDelta;
|
|
}
|
|
|
|
function generateSearchPage(phrase, results) {
|
|
if (results.length == 0) {
|
|
searchResults.innerHTML = `<h4 style="opacity: 0.5">There are no pages that contain <i>"${phrase}"</i></h4>`;
|
|
} else {
|
|
searchResults.innerHTML = `<h4>These pages contain <i>"${phrase}"</i></h4>`;
|
|
results.sort((a, b) => stringDistance(phrase, a.Title) - stringDistance(phrase, b.Title));
|
|
for (var result of results) {
|
|
const child = document.createElement("a");
|
|
child.href = result.NodeResultPath;
|
|
child.innerHTML = result.Title;
|
|
searchResults.appendChild(child);
|
|
}
|
|
}
|
|
|
|
markdownPage.style.display = "none";
|
|
searchResults.style.display = "block";
|
|
}
|
|
</script>
|
|
</body>
|
|
|
|
</html> |