Add init.ps1 setup script, remove Loreline binaries from repo
- Add PowerShell init script that downloads Loreline v0.7.1 from GitHub - Script also checks for .NET 10 SDK and restores NuGet packages - Remove Loreline DLL/XML/deps from git tracking (now fetched by init.ps1) - Update .gitignore to exclude entire lib/ directory
This commit is contained in:
parent
b1f8ceec66
commit
e0cdc7a6de
5 changed files with 121 additions and 528 deletions
11
.gitignore
vendored
11
.gitignore
vendored
|
|
@ -17,15 +17,8 @@ obj/
|
|||
**/[Pp]roject.lock.json
|
||||
project.assets.json
|
||||
|
||||
## Keep Loreline DLL
|
||||
!lib/Loreline.dll
|
||||
!lib/Loreline.xml
|
||||
!lib/Loreline.deps.json
|
||||
lib/Loreline/
|
||||
lib/loreline-csharp.zip
|
||||
lib/Loreline.csproj
|
||||
lib/Loreline.sln
|
||||
lib/Directory.Build.props
|
||||
## Loreline (downloaded by init.ps1)
|
||||
lib/
|
||||
|
||||
## Build results
|
||||
[Dd]ebug/
|
||||
|
|
|
|||
119
init.ps1
Normal file
119
init.ps1
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
# Open The Box - Initialization Script
|
||||
# Run this after cloning to download dependencies and verify the environment.
|
||||
#
|
||||
# Usage: .\init.ps1
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$LorelineVersion = "0.7.1"
|
||||
$LorelineZipUrl = "https://github.com/Loreline/loreline/releases/download/v$LorelineVersion/loreline-csharp.zip"
|
||||
$LibDir = Join-Path $PSScriptRoot "lib"
|
||||
$LorelineDll = Join-Path $LibDir "Loreline.dll"
|
||||
$TempZip = Join-Path $LibDir "loreline-csharp.zip"
|
||||
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " Open The Box - Project Setup" -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# ── Step 1: Check .NET SDK ────────────────────────────────────────────
|
||||
|
||||
Write-Host "[1/3] Checking .NET SDK..." -ForegroundColor Yellow
|
||||
|
||||
$sdks = & dotnet --list-sdks 2>$null
|
||||
$hasNet10 = $sdks | Where-Object { $_ -match "^10\." }
|
||||
|
||||
if (-not $hasNet10) {
|
||||
Write-Host " .NET 10 SDK not found." -ForegroundColor Red
|
||||
Write-Host " Install it with: winget install Microsoft.DotNet.SDK.10" -ForegroundColor Red
|
||||
Write-Host " Or download from: https://dotnet.microsoft.com/download/dotnet/10.0" -ForegroundColor Red
|
||||
Write-Host ""
|
||||
$response = Read-Host " Attempt to install via winget? (y/N)"
|
||||
if ($response -eq "y" -or $response -eq "Y") {
|
||||
Write-Host " Installing .NET 10 SDK..." -ForegroundColor Yellow
|
||||
winget install Microsoft.DotNet.SDK.10 --accept-source-agreements --accept-package-agreements
|
||||
Write-Host " Installed. You may need to restart your terminal for PATH changes." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " Skipping .NET 10 SDK install. Build may fail without it." -ForegroundColor Red
|
||||
}
|
||||
} else {
|
||||
$version = ($hasNet10 | Select-Object -First 1) -replace '\s+\[.*$', ''
|
||||
Write-Host " .NET SDK $version found." -ForegroundColor Green
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ── Step 2: Download Loreline ─────────────────────────────────────────
|
||||
|
||||
Write-Host "[2/3] Checking Loreline dependency..." -ForegroundColor Yellow
|
||||
|
||||
if (-not (Test-Path $LibDir)) {
|
||||
New-Item -ItemType Directory -Path $LibDir -Force | Out-Null
|
||||
}
|
||||
|
||||
if (Test-Path $LorelineDll) {
|
||||
Write-Host " Loreline.dll already present." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " Downloading Loreline v$LorelineVersion from GitHub..." -ForegroundColor Yellow
|
||||
try {
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
|
||||
Invoke-WebRequest -Uri $LorelineZipUrl -OutFile $TempZip -UseBasicParsing
|
||||
|
||||
Write-Host " Extracting..." -ForegroundColor Yellow
|
||||
$extractDir = Join-Path $LibDir "_loreline_extract"
|
||||
Expand-Archive -Path $TempZip -DestinationPath $extractDir -Force
|
||||
|
||||
# Find and copy the DLL, XML, and deps.json
|
||||
$dllSource = Get-ChildItem -Path $extractDir -Recurse -Filter "Loreline.dll" | Select-Object -First 1
|
||||
if ($dllSource) {
|
||||
$sourceDir = $dllSource.DirectoryName
|
||||
Copy-Item (Join-Path $sourceDir "Loreline.dll") $LibDir -Force
|
||||
$xmlFile = Join-Path $sourceDir "Loreline.xml"
|
||||
if (Test-Path $xmlFile) { Copy-Item $xmlFile $LibDir -Force }
|
||||
$depsFile = Join-Path $sourceDir "Loreline.deps.json"
|
||||
if (Test-Path $depsFile) { Copy-Item $depsFile $LibDir -Force }
|
||||
Write-Host " Loreline v$LorelineVersion installed." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " ERROR: Could not find Loreline.dll in downloaded archive." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Cleanup
|
||||
Remove-Item $extractDir -Recurse -Force -ErrorAction SilentlyContinue
|
||||
Remove-Item $TempZip -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
catch {
|
||||
Write-Host " ERROR: Failed to download Loreline." -ForegroundColor Red
|
||||
Write-Host " $($_.Exception.Message)" -ForegroundColor Red
|
||||
Write-Host ""
|
||||
Write-Host " Manual install:" -ForegroundColor Yellow
|
||||
Write-Host " 1. Download from: $LorelineZipUrl" -ForegroundColor Yellow
|
||||
Write-Host " 2. Extract Loreline.dll to: $LibDir" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ── Step 3: Restore NuGet packages ───────────────────────────────────
|
||||
|
||||
Write-Host "[3/3] Restoring NuGet packages..." -ForegroundColor Yellow
|
||||
dotnet restore
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host " Packages restored." -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host " WARNING: Package restore failed. Try running 'dotnet restore' manually." -ForegroundColor Red
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
# ── Done ──────────────────────────────────────────────────────────────
|
||||
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host " Setup complete!" -ForegroundColor Green
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host " To build: dotnet build" -ForegroundColor Cyan
|
||||
Write-Host " To run: dotnet run --project src/OpenTheBox" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETStandard,Version=v2.1/",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETStandard,Version=v2.1": {},
|
||||
".NETStandard,Version=v2.1/": {
|
||||
"Loreline/1.0.0": {
|
||||
"runtime": {
|
||||
"Loreline.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Loreline/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
lib/Loreline.dll
BIN
lib/Loreline.dll
Binary file not shown.
495
lib/Loreline.xml
495
lib/Loreline.xml
|
|
@ -1,495 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Loreline</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Loreline.IFields">
|
||||
<summary>
|
||||
Base interface to hold loreline values.
|
||||
This interface allows to map loreline object fields to game-specific objects.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.IFields.LorelineCreate(Loreline.Interpreter)">
|
||||
<summary>
|
||||
Called when the object has been created from an interpreter
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
</member>
|
||||
<member name="M:Loreline.IFields.LorelineGet(Loreline.Interpreter,System.String)">
|
||||
<summary>
|
||||
Get the value associated to the given field key
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
<param name="key">The field key</param>
|
||||
<returns>The value associated with the key</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.IFields.LorelineSet(Loreline.Interpreter,System.String,System.Object)">
|
||||
<summary>
|
||||
Set the value associated to the given field key
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
<param name="key">The field key</param>
|
||||
<param name="value">The value to set</param>
|
||||
</member>
|
||||
<member name="M:Loreline.IFields.LorelineRemove(Loreline.Interpreter,System.String)">
|
||||
<summary>
|
||||
Remove the field associated to the given key
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
<param name="key">The field key to remove</param>
|
||||
<returns>True if the key was found and removed, false otherwise</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.IFields.LorelineExists(Loreline.Interpreter,System.String)">
|
||||
<summary>
|
||||
Check if a value exists for the given key
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
<param name="key">The field key to check</param>
|
||||
<returns>True if the key exists, false otherwise</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.IFields.LorelineFields(Loreline.Interpreter)">
|
||||
<summary>
|
||||
Get all the fields of this object
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
<returns>An array of field keys</returns>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter">
|
||||
<summary>
|
||||
Main interpreter class for Loreline scripts.
|
||||
This class is responsible for executing a parsed Loreline script,
|
||||
managing the runtime state, and interacting with the host application
|
||||
through handler functions.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.TextTag">
|
||||
<summary>
|
||||
Represents a tag in text content, which can be used for styling or other purposes.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.TextTag.Closing">
|
||||
<summary>
|
||||
Whether this is a closing tag.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.TextTag.Value">
|
||||
<summary>
|
||||
The value or name of the tag.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.TextTag.Offset">
|
||||
<summary>
|
||||
The offset in the text where this tag appears.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.ChoiceOption">
|
||||
<summary>
|
||||
Represents a choice option presented to the user.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.ChoiceOption.Text">
|
||||
<summary>
|
||||
The text of the choice option.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.ChoiceOption.Tags">
|
||||
<summary>
|
||||
Any tags associated with the choice text.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.ChoiceOption.Enabled">
|
||||
<summary>
|
||||
Whether this choice option is currently enabled.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.Function">
|
||||
<summary>
|
||||
Delegate type for functions that can be called from the script.
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter instance</param>
|
||||
<param name="args">Arguments passed to the function</param>
|
||||
<returns>The result of the function</returns>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.DialogueCallback">
|
||||
<summary>
|
||||
Callback type for dialogue continuation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.Dialogue">
|
||||
<summary>
|
||||
Contains information about a dialogue to be displayed to the user.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Dialogue.Interpreter">
|
||||
<summary>
|
||||
The interpreter instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Dialogue.Character">
|
||||
<summary>
|
||||
The character speaking (null for narrator text).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Dialogue.Text">
|
||||
<summary>
|
||||
The text content to display.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Dialogue.Tags">
|
||||
<summary>
|
||||
Any tags in the text.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Dialogue.Callback">
|
||||
<summary>
|
||||
Function to call when the text has been displayed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.DialogueHandler">
|
||||
<summary>
|
||||
Handler type for text output with callback.
|
||||
This is called when the script needs to display text to the user.
|
||||
</summary>
|
||||
<param name="dialogue">A Dialogue structure containing all necessary information</param>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.ChoiceCallback">
|
||||
<summary>
|
||||
Callback type for choice selection.
|
||||
</summary>
|
||||
<param name="index">The index of the selected choice</param>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.Choice">
|
||||
<summary>
|
||||
Contains information about choices to be presented to the user.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Choice.Interpreter">
|
||||
<summary>
|
||||
The interpreter instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Choice.Options">
|
||||
<summary>
|
||||
The available choice options.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Choice.Callback">
|
||||
<summary>
|
||||
Function to call with the index of the selected choice.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.ChoiceHandler">
|
||||
<summary>
|
||||
Handler type for choice presentation with callback.
|
||||
This is called when the script needs to present choices to the user.
|
||||
</summary>
|
||||
<param name="choice">A Choice structure containing all necessary information</param>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.CreateFields">
|
||||
<summary>
|
||||
A custom instanciator to create fields objects.
|
||||
</summary>
|
||||
<param name="interpreter">The interpreter related to this object creation</param>
|
||||
<param name="type">The expected type of the object, if there is any known</param>
|
||||
<param name="node">The associated node in the script, if any</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.Finish">
|
||||
<summary>
|
||||
Contains information about the script execution completion.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.Finish.Interpreter">
|
||||
<summary>
|
||||
The interpreter instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.InterpreterOptions.Default">
|
||||
<summary>
|
||||
Retrieve default interpreter options
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.InterpreterOptions.Functions">
|
||||
<summary>
|
||||
Optional map of additional functions to make available to the script
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.InterpreterOptions.StrictAccess">
|
||||
<summary>
|
||||
Tells whether access is strict or not. If set to true,
|
||||
trying to read or write an undefined variable will throw an error.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.InterpreterOptions.CustomCreateFields">
|
||||
<summary>
|
||||
A custom instantiator to create fields objects.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.InterpreterOptions.Translations">
|
||||
<summary>
|
||||
Optional translations map for localization.
|
||||
Built from a parsed translation file using Engine.ExtractTranslations().
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Loreline.Interpreter.FinishHandler">
|
||||
<summary>
|
||||
Handler type to be called when the execution finishes.
|
||||
</summary>
|
||||
<param name="finish">A Finish structure containing the interpreter instance</param>
|
||||
</member>
|
||||
<member name="F:Loreline.Interpreter.RuntimeInterpreter">
|
||||
<summary>
|
||||
The underlying runtime interpreter instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.#ctor(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler)">
|
||||
<summary>
|
||||
Creates a new Loreline script interpreter.
|
||||
</summary>
|
||||
<param name="script">The parsed script to execute</param>
|
||||
<param name="handleDialogue">Function to call when displaying dialogue text</param>
|
||||
<param name="handleChoice">Function to call when presenting choices</param>
|
||||
<param name="handleFinish">Function to call when execution finishes</param>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.#ctor(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,Loreline.Interpreter.InterpreterOptions)">
|
||||
<summary>
|
||||
Creates a new Loreline script interpreter.
|
||||
</summary>
|
||||
<param name="script">The parsed script to execute</param>
|
||||
<param name="handleDialogue">Function to call when displaying dialogue text</param>
|
||||
<param name="handleChoice">Function to call when presenting choices</param>
|
||||
<param name="handleFinish">Function to call when execution finishes</param>
|
||||
<param name="options">Additional options</param>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.Start(System.String)">
|
||||
<summary>
|
||||
Starts script execution from the beginning or a specific beat.
|
||||
</summary>
|
||||
<param name="beatName">Optional name of the beat to start from. If null, execution starts from
|
||||
the first beat or a beat named "_" if it exists.</param>
|
||||
<exception cref="T:Loreline.Runtime.RuntimeError">Thrown if the specified beat doesn't exist or if no beats are found in the script</exception>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.Save">
|
||||
<summary>
|
||||
Saves the current state of the interpreter.
|
||||
This includes all state variables, character states, and execution stack,
|
||||
allowing execution to be resumed later from the exact same point.
|
||||
</summary>
|
||||
<returns>A JSON string containing the serialized state</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.Restore(System.String)">
|
||||
<summary>
|
||||
Restores the interpreter state from a previously saved state.
|
||||
This allows resuming execution from a previously saved state.
|
||||
</summary>
|
||||
<param name="savedData">The JSON string containing the serialized state</param>
|
||||
<exception cref="T:Loreline.Runtime.RuntimeError">Thrown if the save data version is incompatible</exception>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.Resume">
|
||||
<summary>
|
||||
Resumes execution after restoring state.
|
||||
This should be called after Restore() to continue execution.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.GetCharacter(System.String)">
|
||||
<summary>
|
||||
Gets a character by name.
|
||||
</summary>
|
||||
<param name="name">The name of the character to get</param>
|
||||
<returns>The character's fields or null if the character doesn't exist</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Interpreter.GetCharacterField(System.String,System.String)">
|
||||
<summary>
|
||||
Gets a specific field of a character.
|
||||
</summary>
|
||||
<param name="character">The name of the character</param>
|
||||
<param name="name">The name of the field to get</param>
|
||||
<returns>The field value or null if the character or field doesn't exist</returns>
|
||||
</member>
|
||||
<member name="T:Loreline.Engine">
|
||||
<summary>
|
||||
The main public API for Loreline runtime.
|
||||
Provides easy access to the core functionality for parsing and running Loreline scripts.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)">
|
||||
<summary>
|
||||
Parses the given text input and creates an executable <see cref="T:Loreline.Script"/> instance from it.
|
||||
</summary>
|
||||
<remarks>
|
||||
This is the first step in working with a Loreline script. The returned
|
||||
<see cref="T:Loreline.Script"/> object can then be passed to methods Play() or Resume().
|
||||
</remarks>
|
||||
<param name="input">The Loreline script content as a string (.lor format)</param>
|
||||
<param name="filePath">(optional) The file path of the input being parsed. If provided, requires `handleFile` as well.</param>
|
||||
<param name="handleFile">(optional) A file handler to read imports. If that handler is asynchronous, then `parse()` method will return null and `callback` argument should be used to get the final script</param>
|
||||
<param name="callback">If provided, will be called with the resulting script as argument. Mostly useful when reading file imports asynchronously</param>
|
||||
<returns>The parsed script as an AST <see cref="T:Loreline.Script"/> instance (if loaded synchronously)</returns>
|
||||
<exception cref="T:Loreline.Runtime.Error">Thrown if the script contains syntax errors or other parsing issues</exception>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Play(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,System.String)">
|
||||
<summary>
|
||||
Starts playing a Loreline script from the beginning or a specific beat.
|
||||
</summary>
|
||||
<remarks>
|
||||
This function takes care of initializing the interpreter and starting execution
|
||||
immediately. You'll need to provide handlers for dialogues, choices, and
|
||||
script completion.
|
||||
</remarks>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="handleDialogue">Function called when dialogue text should be displayed</param>
|
||||
<param name="handleChoice">Function called when player needs to make a choice</param>
|
||||
<param name="handleFinish">Function called when script execution completes</param>
|
||||
<param name="beatName">Name of a specific beat to start from (defaults to first beat)</param>
|
||||
<returns>The interpreter instance that is running the script</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Play(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,Loreline.Interpreter.InterpreterOptions)">
|
||||
<summary>
|
||||
Starts playing a Loreline script from the beginning or a specific beat.
|
||||
</summary>
|
||||
<remarks>
|
||||
This function takes care of initializing the interpreter and starting execution
|
||||
immediately. You'll need to provide handlers for dialogues, choices, and
|
||||
script completion.
|
||||
</remarks>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="handleDialogue">Function called when dialogue text should be displayed</param>
|
||||
<param name="handleChoice">Function called when player needs to make a choice</param>
|
||||
<param name="handleFinish">Function called when script execution completes</param>
|
||||
<param name="options">Additional options</param>
|
||||
<returns>The interpreter instance that is running the script</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Play(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,System.String,Loreline.Interpreter.InterpreterOptions)">
|
||||
<summary>
|
||||
Starts playing a Loreline script from the beginning or a specific beat.
|
||||
</summary>
|
||||
<remarks>
|
||||
This function takes care of initializing the interpreter and starting execution
|
||||
immediately. You'll need to provide handlers for dialogues, choices, and
|
||||
script completion.
|
||||
</remarks>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="handleDialogue">Function called when dialogue text should be displayed</param>
|
||||
<param name="handleChoice">Function called when player needs to make a choice</param>
|
||||
<param name="handleFinish">Function called when script execution completes</param>
|
||||
<param name="beatName">Name of a specific beat to start from (defaults to first beat)</param>
|
||||
<param name="options">Additional options</param>
|
||||
<returns>The interpreter instance that is running the script</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Resume(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,System.String,System.String)">
|
||||
<summary>
|
||||
Resumes a previously saved Loreline script from its saved state.
|
||||
</summary>
|
||||
<remarks>
|
||||
This allows you to continue a story from the exact point where it was saved,
|
||||
restoring all state variables, choices, and player progress.
|
||||
</remarks>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="handleDialogue">Function called when dialogue text should be displayed</param>
|
||||
<param name="handleChoice">Function called when player needs to make a choice</param>
|
||||
<param name="handleFinish">Function called when script execution completes</param>
|
||||
<param name="saveData">The saved game data (typically from <see cref="M:Loreline.Interpreter.Save"/>)</param>
|
||||
<param name="beatName">Optional beat name to override where to resume from</param>
|
||||
<returns>The interpreter instance that is running the script</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Resume(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,System.String,Loreline.Interpreter.InterpreterOptions)">
|
||||
<summary>
|
||||
Resumes a previously saved Loreline script from its saved state.
|
||||
</summary>
|
||||
<remarks>
|
||||
This allows you to continue a story from the exact point where it was saved,
|
||||
restoring all state variables, choices, and player progress.
|
||||
</remarks>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="handleDialogue">Function called when dialogue text should be displayed</param>
|
||||
<param name="handleChoice">Function called when player needs to make a choice</param>
|
||||
<param name="handleFinish">Function called when script execution completes</param>
|
||||
<param name="saveData">The saved game data (typically from <see cref="M:Loreline.Interpreter.Save"/>)</param>
|
||||
<param name="options">Additional options</param>
|
||||
<returns>The interpreter instance that is running the script</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Resume(Loreline.Script,Loreline.Interpreter.DialogueHandler,Loreline.Interpreter.ChoiceHandler,Loreline.Interpreter.FinishHandler,System.String,System.String,Loreline.Interpreter.InterpreterOptions)">
|
||||
<summary>
|
||||
Resumes a previously saved Loreline script from its saved state.
|
||||
</summary>
|
||||
<remarks>
|
||||
This allows you to continue a story from the exact point where it was saved,
|
||||
restoring all state variables, choices, and player progress.
|
||||
</remarks>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="handleDialogue">Function called when dialogue text should be displayed</param>
|
||||
<param name="handleChoice">Function called when player needs to make a choice</param>
|
||||
<param name="handleFinish">Function called when script execution completes</param>
|
||||
<param name="saveData">The saved game data (typically from <see cref="M:Loreline.Interpreter.Save"/>)</param>
|
||||
<param name="beatName">Optional beat name to override where to resume from</param>
|
||||
<param name="options">Additional options</param>
|
||||
<returns>The interpreter instance that is running the script</returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.ExtractTranslations(Loreline.Script)">
|
||||
<summary>
|
||||
Extracts translations from a parsed translation script.
|
||||
</summary>
|
||||
<remarks>
|
||||
Given a translation file parsed with <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>, this returns a translations map
|
||||
that can be passed as <see cref="F:Loreline.Interpreter.InterpreterOptions.Translations"/> to
|
||||
Play() or Resume().
|
||||
</remarks>
|
||||
<param name="script">The parsed translation script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/> on a .XX.lor file)</param>
|
||||
<returns>A translations object to pass as <see cref="F:Loreline.Interpreter.InterpreterOptions.Translations"/></returns>
|
||||
</member>
|
||||
<member name="M:Loreline.Engine.Print(Loreline.Script,System.String,System.String)">
|
||||
<summary>
|
||||
Prints a parsed script back into Loreline source code.
|
||||
</summary>
|
||||
<param name="script">The parsed script (result from <see cref="M:Loreline.Engine.Parse(System.String,System.String,Loreline.Engine.ImportsFileHandler,Loreline.Engine.ParseCallback)"/>)</param>
|
||||
<param name="indent">The indentation string to use (defaults to two spaces)</param>
|
||||
<param name="newline">The newline string to use (defaults to "\n")</param>
|
||||
<returns>The printed source code as a string</returns>
|
||||
</member>
|
||||
<member name="T:Loreline.Node">
|
||||
<summary>
|
||||
Represents a node in a Loreline AST.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Node.RuntimeNode">
|
||||
<summary>
|
||||
The underlying runtime node instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Node.Type">
|
||||
<summary>
|
||||
The type of the node as string
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Node.Id">
|
||||
<summary>
|
||||
The id of this node (should be unique within a single script hierarchy)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.Node.ToJson(System.Boolean)">
|
||||
<summary>
|
||||
Converts the node to a JSON representation.
|
||||
This can be used for debugging or serialization purposes.
|
||||
</summary>
|
||||
<param name="pretty">Whether to format the JSON with indentation and line breaks</param>
|
||||
<returns>A JSON string representation of the node</returns>
|
||||
</member>
|
||||
<member name="T:Loreline.Script">
|
||||
<summary>
|
||||
Represents the root node of a Loreline script AST.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Loreline.Script.RuntimeScript">
|
||||
<summary>
|
||||
The underlying runtime script instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Loreline.Script.#ctor(Loreline.Runtime.Script)">
|
||||
<summary>
|
||||
Creates a new Script instance with the provided runtime script.
|
||||
</summary>
|
||||
<param name="runtimeScript">The parsed runtime script to wrap</param>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
Loading…
Add table
Reference in a new issue