Summary:
This software is freeware. That means you can copy it and give it to other people, as long as you do it for free. But you are not allowed to use any parts of this software (except the RichTextFX library and the JavaFX libraries) for any other purpose than to run this software as it is. This especially means that you are not permitted to decompile this software!
This software comes without any warranty.
To see the full license agreement, go to "Help" > "open EULA".
If you modify a personality using other software while that personality is open in TAIPEJ, TAIPEJ will be able to handle most of those modifications.
supported:
partially supported:
not supported: deleting files / folders that are currently open in TAIPEJ
This application respects your mouse-related system settings, i.e. if you switched the mouse buttons, this software will act accordingly. Therefore if this manual refers to the "left" mouse button, the primary one needs to be used, whereas "right" button means the secondary one.
The version numbers of this software consist of 4 dot-separated numbers. The further to the right a number is, the lower is its significants. The meaning of the 4 numbers will be explained below (from left to right):
The version number of the manual always corresponds with the version number of the software it was written for. Thus the version number of the manual may increase even though the manual itself hasn't changed.
The version number of the manual has a letter at the end. If there is an error in the manual so the manual needs to be updated without the software being updated, the letter gets increased.
OS: any 64-bit system that can run a standard desktop-JRE version 16+, such as Windows 7+, Ubuntu (not sure about the version; requires at least 12.04+, maybe newer), Mac OSX
Java: version 16 or later (see "Installation" for details)
JavaFX: version 11 or later (see "Installation" for details)
CPU: Dual Core @ 2.0 GHz or better (recommendation for Win 7)
RAM: 2 GB or more
This software requires Java and JavaFX to run. There are 3 options:
Here is a table showing the differences between the options:
option | description | file size | JavaFX | environment variables |
recommended for... |
---|---|---|---|---|---|
complete JRE | This contains the files that are required to run Java applications and all available Java modules. | 50 MiB for Java +82 MiB for JavaFX |
Needs to be downloaded / installed separately | %JAVA16% %JFX11% |
NOT recommended |
custom JRE | This JRE is designed specifically for TAIPEJ. Therefore it only contains the Java modules that TAIPEJ actually uses. | 117 MiB total | already included | none required | everyone for whom none of the other options is recommended (which will be most people) |
JDK | As the name suggests, the JDK is designed for people who develop Java applications. It contains a complete JRE and all the files you need for Java development. |
290 MiB for Java +82 MiB for JavaFX |
Needs to be downloaded / installed separately | %JAVA16% %JFX11% |
|
at compression level 2
see below for instructions how to set them up
As it turns out, JavaFX requires 2 special modules called "jdk.unsupported
" and "jdk.xml.dom
" in order to run. Most complete JREs on the Internet probably won't include them.
As a result, you will only see an empty window, if the former is missing and TAIPEJ will most likely crash when you click on an external Link in the EULA, if the latter is missing. If you already have a complete JRE, you can run "java --list-modules
" from the command line to see whether jdk.unsupported
& jdk.xml.dom
are included. If they are, you can use that JRE to run TAIPEJ.
Note that there is a bug in JavaFX (which has been around since at least version 8) which causes people who use a complete JRE or a JDK to not see the icons of pop-up windows. That makes it harder to (visually) identify whether they are error, warning or notification pop-ups. Since most people will probably use the custom JRE, and because it's just a minor graphical error, I won't bother fixing this.
<path/to/JavaFX>/lib
to <path/to/TAIPEJ>/lib
(alternatively, you can create symlinks, if you have admin rights)<path/to/JavaFX>/lib
in <path/to/TAIPEJ>/lib
To uninstall this software, all you have to do is to remove the files you extracted during the installation (as well as additional files you may have downloaded later).
If you had to set environment variables during the installation (and don't need them anymore) you have to delete those, too.
After executing these 3 steps the main window will open and you can start editing your personality.
You can open multiple instances of TAIPEJ at the same time, but you cannot open the same personality in more than one.
Note: If you change TAIPEJ's settings while more than one instance is running, only the one where you changed them will behave accordingly.
Changing the settings in instance A and then changing a different setting in instance B will overwrite the first change. So if you change anything, change it in all instances or restart them.
Speaking of settings: There is no in-app way of changing anything regarding the splash screen. However, it is very simple to do via the file manager.
To disable the splash screen, rename / move or delete splash.gif.
To re-enable it, move / rename it back.
To use a different picture, replace splash.gif with any other GIF. It doesn't matter, whether the new one is animated or not; it doesn't matter whether the new one has transparency or not. And the resolutions also do not have to match. But make sure the resolution of the new one is smaller than your screen resolution. Otherwise Java itself might crash.
If you get a message saying that %JAVA16% or %JFX11% are not set, check that you spelled the variable names correctly when you created them.
If you still get the message, even though they are spelled correctly, do the following:
If you get a message that says "No toolkit found
" somewhere in it, Java wasn't able to find JavaFX. Make sure the environment variable (if needed) points to the correct directory.
The "bin" folder inside of it should contain a bunch of DLLs.
If you get a message saying that $JAVA16 or $JFX11 are not set, check that you spelled the variable names correctly when you created them.
If you still get the message, even though they are spelled correctly, log out of Linux and log back in. If that sill does not help, reboot your PC.
If you get a message that says "No toolkit found
" somewhere in it, Java wasn't able to find JavaFX. Make sure the environment variable (if needed) points to the correct directory.
It should contain several *.so files.
In the current version of TAIPEJ, people who use the custom JRE will get a bunch of warnings saying "WARNING: Unknown module: richtextfx.fat specified to ...
".
These can be safely ignored. They are the result of a temporary workaround I used. As soon as I find the time to implement an actual fix, those warnings will be gone.
In the current version of TAIPEJ, people who decided against using the custom JRE will get a bunch of warnings saying "WARNING: Unknown module: javafx.graphics specified to ...
". These can be safely ignored. The module simply has not been loaded yet when those warnings are generated.
The main window of TAIPEJ consists of several parts. Here is what those are, how they work and what they can do:
The menu bar offers a variety of features:
You can see the corresponding keyboard shortcuts next to each menu item, if available.
The file tree labeled "Scripts" shows all the files and folders in your selected personality similar to a file manager.
Clicking has the following effects:
If there is a selected tree item and the tree is focused, you can also use keys to interact with that tree:
The file tree labeled "TeaseAI" shows all the files and folders in your TeaseAI root folder. It works the same way as the other tree, except:
Both trees use colors and other styles to indicate, what type of files are listed. By default, folders appear "normal" whereas files are bold.
Files will have different colors depending on their extension and (if the file is a script) whether any problems were found in it.
Currently open scripts are italic.
These are the default colors:
pink | file that does not match any other category |
red | script with errors |
gold | script with warnings |
orange | script with errors & warnings |
blue | script that has too many lines for TAIPEJ |
cyan | media files |
green | *.txt file that is not in any valid script location / has an invalid name for its location |
script whose type could not be determined | |
white | scripts without any problems |
folders | |
gray | scripts whose type is not yet supported by TAIPEJ |
The code area consists of 3 parts: the tab headers, the line numbers and the text area. There is 1 tab for each open file. They work just like the tabs of a web browser.
The line numbers will be colored, if there are any problems on that line.
The text area shows your code with syntax highlighting and allows you to edit the code. You can use a variety of shortcuts to speed things up.
If you hover over a command / filter / system keyword that is deprecated or has known issues, a tooltip will appear and tell you more about what's wrong with that particular one.
When you right-click on something in your code that raised an error or warning (by default, those things will be underlined), TAIPEJ will check if there are any "Quick Fixes" available
for that particular problem. If so, a context menu will open, that lets you choose how you want that problem to be fixed.
If you see a file that does not have any syntax highlighting, this is not necessarily a bug. The lack of syntax highlighting can have one of several reasons:
The example generator is hidden by default in order to save space on the screen. You can activate it via the menu bar or by pressing F6.
The generator will take the code from the current line (i.e. where the caret is) of the currently open script and do the following things:
The result of this replacement will then be shown in a small box above the code area.
This four-column table contains a list of all the things that are wrong with your personality's code. It distinguishes between "error"s, "warning"s and "others".
Generally speaking, errors are problems that will lead to unexpected behavior -- maybe even a crash, warnings are issues that might lead to unexpected results and "others" are just bits of information you should be aware of.
The first column shows which of these severities applies to the problem in this row.
The 2nd column contains a textual description of the problem to help you solve it.
The 3rd column shows the path and name of the file. The path is always relative to the root directory of the chosen personality.
The last column contains the number of the line where the issue is located in the file.
All problems are sorted by file (path and name alphabetically ascending) and line number (ascending).
You will also see rows where the columns "File" and "Line" are empty. These rows show so-called "project wide problems". These problems are not connected to a specific file, but to the personality as a whole (e.g. a mandatory script is missing). If only the "Line" column is empty, the problem doesn't refer to a single line, but the entire file (e.g. a list type script is empty).
When you launch the application all scripts of the selected personality will be scanned for problems. Afterwards the list of problems will be updated as follows:
The entire list will be cleared and rebuilt from scratch, if you switch to a different personality, of course.
You can sort the entries in the table by clicking on the table header of the column you want to sort by. If you prefer descending order instead of ascending, click on the same header again. Clicking a third time disables the custom sorting.
You can double-click an entry that is related to a particular script to open / jump to that script. If the problem occurs in a particular line, the caret will be automatically positioned on that line.
You can right-click any entry to get a more detailed explanation of the problem and how to fix it.
When you run a search-in-all-files, the search results will be displayed at the bottom of the main window. The table of problems will become a tab and the search results will be a new tab next to it.
Every time you run a search – even if you repeat a search – a new tab will be created. This allows you to look at the old results in case you need them for comparison.
Unlike the table of problems, the search result tabs can be closed.
The list of search results has a top-level entry for each script that contains at least one match to your search. Each such entry will have a child for each line that has at least one match in it.
You can double-click on a script to open it in a new tab (or jump to that tab, if it is already open). You can double-click on a line to open the script and jump directly to that line.
The settings menu allows you to adjust various preferences. You can confirm your changes by clicking the "OK" button. You can cancel your changes by clicking the "cancel" button, clicking the red cross button of the settings window or by hitting the "ESC" key.
You can adjust the following settings:
If you know your way around CSS, you can modify the syntax highlighting as well as the entire look of your code and the file trees with simple CSS rules.
To do that, create a file called "userScriptStyle.css" in TAIPEJ's resource directory (the one you set up during the first launch) and fill it with CSS instructions. If TAIPEJ is currently running, you have to restart it. Since the "C" in "CSS" stands for "cascading", you only have to specify CSS rules for the things you want to override.
For changing the look of the code area, the following (case-sensitive) classes are supported:
[Before Tease]
)The following properties can be changed:
Property | CSS name | values |
---|---|---|
background color of tree items | -fx-background-color | same values as for "color" in normal CSS (be aware that some named colors look a bit different in JavaFX than they do in HTML) |
text color of the code | -fx-fill | same values as for "color" in normal CSS (be aware that some named colors look a bit different in JavaFX than they do in HTML) |
text color of tree items | -fx-text-fill | same values as for "color" in normal CSS (be aware that some named colors look a bit different in JavaFX than they do in HTML) |
underlining | -fx-underline | "true" | "false" |
font | -fx-font-family | name of a specific font or one of these font families: "serif" | "sans-serif" | "cursive" | "fantasy" | "monospace" (you shouldn't change this for the code area, only for the trees; maybe I did something wrong while testing, but JavaFX still seems to have trouble with most fonts that aren't super common) |
font weight | -fx-font-weight | "bold" | multiples of 100 (100..900) | "bolder" | "lighter" | "normal" (keep in mind that not every font supports all font weights!) |
font style | -fx-font-style | "normal" | "italic" | "oblique" |
strike through | -fx-strikethrough | "true" | "false" |
indentation of tree items | -fx-indent | integer, default = 10 |
In addition to the above you can include the following line in your CSS file in order to change the font size of the code. Replace "XY" with an integer and a valid CSS text size unit. (Default is 15px)
.code-area, .lineno {-fx-font-size: XY }
If you want to restore the original style, simply remove, rename or empty your css file and restart TAIPEJ.
Feel free to share your CSS files with others so we can find the best markup for everyone! :-)
Changing the look of the file trees works in a similar way. There are a few differences, though:
.tree-cell
in front of them. (examples below)#scriptsTree
#taiTree
#fileTreeTabs
(if you want to style both with a single selector):-/
These pseudo-classes can be used:
:selected
(i.e. when it is being highlighted after a single left click):expanded
(folders whose contents are visible):collapsed
(folders whose contents are not visible):even
(if you count the currently visible tree items from top to bottom, these ones have an even number):odd
(if you count the currently visible tree items from top to bottom, these ones have an odd number):open
(currently open *.txt files):file
:script
(all *.txt files in the "Scripts" tree):no-script
(I admit, that one is a little misleading: this applies to *.txt files in the "Scripts" tree that are not recognized as a part of the personality):too-big
(scripts that have too many lines to be parsed):error
(scripts with at least one error in them):warning
(scripts with at least one warning in them):unsupported
(scripts with an unsupported type; will no longer be needed as soon as TAIPEJ supports all possible script types):audio
:picture
:video
Examples:
#taiTree .tree-cell {-fx-font-size: 14px}
[changes the font size of all tree items in the TeaseAI tree (regardless of what type of file / folder they show) to 14 pixels]#scriptsTree .tree-cell:open {-fx-underline: true}
[underlines all currently open files of the "Scripts" tree (might be useful as italic can be a little hard to see sometimes)]#scriptsTree .tree-cell:error:warning {-fx-text-fill: #F33}
[changes the text color of scripts that have errors AND warnings in them to match the default color of those that only have errors]#fileTreeTabs .tree-cell {-fx-font-weight:bold}
#fileTreeTabs .tree-cell:file {-fx-font-weight:normal}
[swaps the "bold" status of folders and files for both trees (looks better, but makes file names harder to read, unless you increase the font size)]#fileTreeTabs .tree-cell:audio, #fileTreeTabs .tree-cell:picture, #fileTreeTabs .tree-cell:video {-fx-text-fill: white}
[changes the text color of all media files in both trees to white]The following buttons / shortcuts can be used (the key bindings currently cannot be changed):
shortcuts provided by the system [cannot be changed] | |
ENTER | Whenever the currently focused window has a button with blue background, hitting ENTER will trigger that button's action. |
Ctrl + A | Mark the entire text of the currently focused text field or text area. |
Ctrl + C | Copy the marked text to the clipboard. |
Ctrl + V | Paste the clipboard's content at the carriet's position, replacing any marked text. |
Ctrl + X | Cut out the marked text and store it in the clipboard. |
Ctrl + Y | Re-do text edit. |
Ctrl + Z | Undo text edit. |
Ctrl + arrow left | move caret to the beginning of the current word. |
Ctrl + arrow right | move caret to the end of the current word. |
Ctrl + Home | move caret to the beginning of the first line. |
Ctrl + End | move caret to the end of the last line. |
Ctrl + Backspace | remove the entire word to the left of the caret. |
Ctrl + Delete | remove the entire word to the right of the caret. |
Ctrl + Tab | Switch to next (right) script tab. |
Ctrl + PageDown | |
Ctrl + Shift + Tab | Switch to previous (left) script tab. |
Ctrl + PageUp | |
function keys [cannot be changed] | |
F1 | open the manual |
F3 | repeat the last search, depending on which one was last used
|
Shift + F3 | will repeat the last "search-and-replace-in-current-file" operation, starting at the current caret position |
F6 | run the example generator and make it visible, if it isn't already |
Shift + F6 | hide the example generator |
F9 | launch TeaseAI |
F11 | toggle full-screen mode |
shortcuts provided by me (commonly found in any software) [might be configurable in a future release] | |
Ctrl + S | Save the currently open script (tab). |
Ctrl + Shift + S | "Save as ..." (not yet available) |
Ctrl + W | Close the currently open script (tab). |
Ctrl + F | Opens the search-in-current-file dialog. |
ESC | Some Pop-up windows such as the settings window can be closed (without saving) by pressing the ESC key. |
shortcuts provided by me (inspired by Eclipse) [might be configurable in a future release] | |
Ctrl + H | Open the search-in-all-files dialog. |
Ctrl + Shift + W | Close all open tabs. |
Alt + Up | Move marked line(s) up by one line (does not affect clipboards) |
Alt + Down | Move marked line(s) down by one line (does not affect clipboards) |
Ctrl + Alt + Up | Duplicate marked line(s) below and keep cursor at current position (does not affect clipboards) |
Ctrl + Alt + Down | Duplicate marked line(s) below and move cursor to identical position within the copy (does not affect clipboards). |
Ctrl + D | Delete marked line(s). |
Ctrl + M | Toggle "maximized code" mode. |
Ctrl + Space | Open / run auto-completion (not yet available). |
general shortcuts provided by me (own creation) [might be configurable in a future release] | |
Ctrl + Shift + C | Copy the marked text to the 2. clipboard. |
Ctrl + Shift + V | Paste the 2. clipboard's content at the carriet's position, replacing any marked text. |
Ctrl + Shift + X | Cut out the marked text and store it in the 2. clipboard. |
Ctrl + Shift + O | Open the debug settings window |
shortcuts specific to TeaseAI scripts [might be configurable in a future release] | |
Ctrl + Shift + some letter | By default this kind of shortcut will insert a command / filter / keyword that starts with the corresponding letter at the current caret position (except for C,V,X,O,S & W – which are covered above) the placeholder <caret> in the explanations below will mark where the caret will be positioned after the insertion. If the placeholder is missing, the caret will simply be at the end of the inserted text. |
Ctrl + Shift + A | Insert @AcceptAnswer |
Ctrl + Shift + D | Insert @DifferentAnswer |
Ctrl + Shift + E | Insert @Edge(<caret>) |
Ctrl + Shift + F | Insert @FollowUp(<caret>) |
Ctrl + Shift + G | Insert @Group(<caret>) |
Ctrl + Shift + I | Insert @If[<caret>]Then() |
Ctrl + Shift + J | Insert @JumpVideo |
Ctrl + Shift + L | Insert @LoopAnswer |
Ctrl + Shift + M | Insert @Mood (this one is not a complete command, but there are a few commands that start with @Mood..., so it should be useful) |
Ctrl + Shift + N | Insert @NullResponse |
Ctrl + Shift + P | Insert @PornAllowedOn |
Ctrl + Shift + R | Insert @RapidCodeOn |
Ctrl + Shift + T | Insert @Timeout(<caret>) |
Ctrl + some digit | By default this kind of shortcut will insert a commonly used block of code at the current caret position the placeholder <caret> in the explanations below will mark where the caret will be positioned after the insertion. If the placeholder is missing, the caret will simply be at the end of the inserted text. |
Ctrl + 1 | Insert [done, ready, finished, continue, go on, proceed, OK] <caret> |
Ctrl + 2 | Insert [yes] <caret> |
Ctrl + 3 | Insert [yes] <caret> |
Ctrl + Alt + some letter | By default this kind of shortcut will open a popup. That popup lists a bunch of commands, filters & keywords of a particular category. Pressing one of the keys listed on screen will insert the corresponding text at the current caret position and move the caret between the brackets, if any. Below you can find which shortcut is associated with which category. |
Ctrl + Alt + C | Calls to other scripts |
Ctrl + Alt + F | Everything related to Flags |
Ctrl + Alt + G | Most of the commands that jump to a Goto-Line |
Ctrl + Alt + M | All commands related to Modes (such as @YesMode() ) |
Ctrl + Alt + V | Everything related to Variables (except @If[] ) |
Ctrl + Alt + W | Everything related to Worshipping |
Some things just don't work out the way we want them to sometimes ;) Here's what TAIPEJ is struggling with:
@SetFlag() @RT()
and @Goto()
.@Slideshow(Lesbian, Fast)
, because the normal argument (the speed) needs to be placed before the vararg (in this case the picture category).@Slideshow(speed, picCategory...)
@ShowLocalImage(not, picCategory...)