Difference between revisions of "HPL3/Amnesia: Rebirth/Tutorials/Tablets"
(More info) |
(added a mention about notes) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This tutorial will detail how to make a custom Dark World tablet. They are the dark-grey tablets that have hieroglyphic text on them which gets translated after a moment. The tutorial assumes you can set up your mod and have basic skills in scripting etc. | This tutorial will detail how to make a custom Dark World tablet. They are the dark-grey tablets that have hieroglyphic text on them which gets translated after a moment. The tutorial assumes you can set up your mod and have basic skills in scripting etc. | ||
+ | |||
+ | If you are already familiar with [[HPL3/Amnesia: Rebirth/Tutorials/Notes|how the readables system works]], the way the tablets work will be largely familiar to you. The tablets only require a few simple steps more than e.g. a note, but this tutorial will cover their creation from scratch. | ||
==Tutorial== | ==Tutorial== | ||
To get a custom readable tablet in Rebirth: | To get a custom readable tablet in Rebirth: | ||
− | # | + | # In <code>readables.cfg</code>: |
− | # Set the note ID and FrontEntry to whatever you want | + | ## Set up a new category for your map. |
− | # | + | ## Create a new entry. Set the note ID and FrontEntry to whatever you want. They don't have to be the same, although that's what FG usually did. |
− | # In that category, set up an entry with the same name as the FrontEntry name previously set for the tablet in <code>readables.cfg</code> | + | # In <code>english.lang</code>: |
− | # Place the <code>dw_tablet_readable.ent</code> entity somewhere in a level | + | ## Place a category in with the same name as the category ID from <code>readables.cfg</code> |
− | # Set the Readable/ID parameter of the entity to the ID from <code>readables.cfg</code> | + | ## In that category, set up an entry with the same name as the FrontEntry name previously set for the tablet in <code>readables.cfg</code> |
− | # Set the GUI func to <code>OnGuiDWNote</code> and set text scale as wanted | + | ## Add an entry called <code><FrontEntry Name>_En</code>. This is the blue text that will appear on the tablet itself (you probably want to set the same text as previously). |
− | # Add this to your include list in your map script: <code>#include "helpers/custom/helper_props_custom.hps"</code> | + | ## Add an entry called <code><FrontEntry Name>_Name</code>. This is the name of the entry in the sketchbook. |
− | # Place this function somewhere in your script: | + | ## Add a category called "Levels" and inside add an entry which is called the same as the "Name" parameter in the <code>readables.cfg</code> category. This will be the sketchbook category. |
+ | # In your map: | ||
+ | ## Place the <code>dw_tablet_readable.ent</code> entity somewhere in a level | ||
+ | ## Set the Readable/ID parameter of the entity to the ID from <code>readables.cfg</code> | ||
+ | ## Set the GUI func to <code>OnGuiDWNote</code> and set text scale as wanted | ||
+ | # In the map script: | ||
+ | ## Add this to your include list in your map script: <code>#include "helpers/custom/helper_props_custom.hps"</code> | ||
+ | ## Place this function somewhere in your script: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
void OnGuiDWNote(const tString&in asEntityName, float afTimeStep) | void OnGuiDWNote(const tString&in asEntityName, float afTimeStep) | ||
Line 20: | Line 29: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | If you want to make a tablet unreadable, leave the Readable/ID parameter of the tablet empty. This means that it doesn't need lang and readables entries. | + | If you want to make a tablet unreadable (orange gibberish), leave the Readable/ID parameter of the tablet empty. This means that it doesn't need lang and readables entries. |
+ | |||
+ | {{warning|You can add a BackEntry to a tablet, but the blue text won't render so it will be easily missed - and therefore is not recommended.}} | ||
− | + | Good practices: | |
− | + | * Name your tablet in game as <code>Readable_<ID HERE></code> | |
− | + | * If the tablet isn't going to be readable, name the entity like this: <code>Readable_DWNote_MiscXX</code>, where XX are numbers | |
− | |||
− | * Name your tablet in game as <code>Readable_<ID HERE></code> | ||
− | * If the tablet isn't going to be readable, name the entity like this: <code>Readable_DWNote_MiscXX</code>, where XX are numbers | ||
== Config file examples == | == Config file examples == | ||
Line 36: | Line 44: | ||
<Entry Name="TestTablet_FrontEntry">My first tablet bla bla bla bla bla</Entry> | <Entry Name="TestTablet_FrontEntry">My first tablet bla bla bla bla bla</Entry> | ||
<Entry Name="TestTablet_FrontEntry_Name">This is the entry name in the sketchbook</Entry> | <Entry Name="TestTablet_FrontEntry_Name">This is the entry name in the sketchbook</Entry> | ||
+ | <Entry Name="TestTablet_FrontEntry_En">This is what will appear on the tablet in blue text</Entry> | ||
</CATEGORY> | </CATEGORY> | ||
Latest revision as of 18:51, 10 November 2020
This tutorial will detail how to make a custom Dark World tablet. They are the dark-grey tablets that have hieroglyphic text on them which gets translated after a moment. The tutorial assumes you can set up your mod and have basic skills in scripting etc.
If you are already familiar with how the readables system works, the way the tablets work will be largely familiar to you. The tablets only require a few simple steps more than e.g. a note, but this tutorial will cover their creation from scratch.
Tutorial
To get a custom readable tablet in Rebirth:
- In
readables.cfg
:- Set up a new category for your map.
- Create a new entry. Set the note ID and FrontEntry to whatever you want. They don't have to be the same, although that's what FG usually did.
- In
english.lang
:- Place a category in with the same name as the category ID from
readables.cfg
- In that category, set up an entry with the same name as the FrontEntry name previously set for the tablet in
readables.cfg
- Add an entry called
<FrontEntry Name>_En
. This is the blue text that will appear on the tablet itself (you probably want to set the same text as previously). - Add an entry called
<FrontEntry Name>_Name
. This is the name of the entry in the sketchbook. - Add a category called "Levels" and inside add an entry which is called the same as the "Name" parameter in the
readables.cfg
category. This will be the sketchbook category.
- Place a category in with the same name as the category ID from
- In your map:
- Place the
dw_tablet_readable.ent
entity somewhere in a level - Set the Readable/ID parameter of the entity to the ID from
readables.cfg
- Set the GUI func to
OnGuiDWNote
and set text scale as wanted
- Place the
- In the map script:
- Add this to your include list in your map script:
#include "helpers/custom/helper_props_custom.hps"
- Place this function somewhere in your script:
- Add this to your include list in your map script:
void OnGuiDWNote(const tString&in asEntityName, float afTimeStep)
{
DWNote_RenderGUI(asEntityName, afTimeStep);
}
If you want to make a tablet unreadable (orange gibberish), leave the Readable/ID parameter of the tablet empty. This means that it doesn't need lang and readables entries.
Good practices:
- Name your tablet in game as
Readable_<ID HERE>
- If the tablet isn't going to be readable, name the entity like this:
Readable_DWNote_MiscXX
, where XX are numbers
Config file examples
English.lang:
<LANGUAGE>
<CATEGORY Name="sample_map">
<Entry Name="TestTablet_FrontEntry">My first tablet bla bla bla bla bla</Entry>
<Entry Name="TestTablet_FrontEntry_Name">This is the entry name in the sketchbook</Entry>
<Entry Name="TestTablet_FrontEntry_En">This is what will appear on the tablet in blue text</Entry>
</CATEGORY>
<CATEGORY Name="Levels">
<Entry Name="sample_map_sketchbook_category">This is the category name in the sketchbook</Entry>
</CATEGORY>
</LANGUAGE>
Readables.cfg:
<Readables>
<Categories>
<Category ID="sample_map" Name="sample_map_sketchbook_category">
<Notes>
<Note ID="TestTablet" VoiceSubject="" FrontEntry="TestTablet_FrontEntry" BackEntry="" ImageEntry="" />
</Notes>
</Category>
</Categories>
</Readables>