Add background embeding to module
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { ParseMarkdown, risuChatParser } from "src/ts/parser";
|
import { ParseMarkdown, risuChatParser } from "src/ts/parser";
|
||||||
import { DataBase, type Database, type character, type groupChat } from "src/ts/storage/database";
|
import { DataBase, type Database, type character, type groupChat } from "src/ts/storage/database";
|
||||||
import { CurrentVariablePointer, selectedCharID } from "src/ts/stores";
|
import { CurrentVariablePointer, moduleBackgroundEmbedding, selectedCharID } from "src/ts/stores";
|
||||||
import { onDestroy } from "svelte";
|
import { onDestroy } from "svelte";
|
||||||
|
|
||||||
let backgroundHTML = ''
|
let backgroundHTML = ''
|
||||||
@@ -41,10 +41,10 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
{#if backgroundHTML}
|
{#if backgroundHTML || $moduleBackgroundEmbedding}
|
||||||
{#key $CurrentVariablePointer}
|
{#key $CurrentVariablePointer}
|
||||||
<div class="absolute top-0 left-0 w-full h-full">
|
<div class="absolute top-0 left-0 w-full h-full">
|
||||||
{#await ParseMarkdown(risuChatParser(backgroundHTML, {chara:currentChar}), currentChar, 'back') then md}
|
{#await ParseMarkdown(risuChatParser((backgroundHTML || '') + ($moduleBackgroundEmbedding || ''), {chara:currentChar}), currentChar, 'back') then md}
|
||||||
{@html md}
|
{@html md}
|
||||||
{/await}
|
{/await}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -63,6 +63,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toggleBackground(){
|
||||||
|
if(typeof(currentModule.backgroundEmbedding) !== 'string'){
|
||||||
|
currentModule.backgroundEmbedding = ''
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
currentModule.backgroundEmbedding = undefined
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function addLorebook(){
|
function addLorebook(){
|
||||||
if(Array.isArray(currentModule.lorebook)){
|
if(Array.isArray(currentModule.lorebook)){
|
||||||
currentModule.lorebook.push({
|
currentModule.lorebook.push({
|
||||||
@@ -121,7 +130,9 @@
|
|||||||
<button class={(!Array.isArray(currentModule.trigger)) ? 'p-4' : "p-4 bg-selected rounded-bl-md"} on:click={toggleTrigger}>
|
<button class={(!Array.isArray(currentModule.trigger)) ? 'p-4' : "p-4 bg-selected rounded-bl-md"} on:click={toggleTrigger}>
|
||||||
{language.triggerScript}
|
{language.triggerScript}
|
||||||
</button>
|
</button>
|
||||||
<button></button>
|
<button class={(!Array.isArray(currentModule.trigger)) ? 'p-4' : "p-4 bg-selected rounded-bl-md"} on:click={toggleBackground}>
|
||||||
|
{language.backgroundHTML}
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if (Array.isArray(currentModule.lorebook))}
|
{#if (Array.isArray(currentModule.lorebook))}
|
||||||
@@ -147,6 +158,11 @@
|
|||||||
</button>
|
</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
{#if typeof(currentModule.backgroundEmbedding) === 'string'}
|
||||||
|
<span class="mt-8 text-xl">{language.backgroundHTML}</span>
|
||||||
|
<TextAreaInput bind:value={currentModule.backgroundEmbedding} className="mt-2" placeholder={language.backgroundHTML} size="sm"/>
|
||||||
|
{/if}
|
||||||
|
|
||||||
{#if (Array.isArray(currentModule.trigger))}
|
{#if (Array.isArray(currentModule.trigger))}
|
||||||
<span class="mt-8 text-xl">{language.triggerScript}</span>
|
<span class="mt-8 text-xl">{language.triggerScript}</span>
|
||||||
<div class="flex items-start mt-2 gap-2">
|
<div class="flex items-start mt-2 gap-2">
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ export interface RisuModule{
|
|||||||
id: string
|
id: string
|
||||||
lowLevelAccess?: boolean
|
lowLevelAccess?: boolean
|
||||||
hideIcon?: boolean
|
hideIcon?: boolean
|
||||||
|
backgroundEmbedding?:string
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function exportModule(module:RisuModule){
|
export async function exportModule(module:RisuModule){
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ export const CharEmotion = writable({} as {[key:string]: [string, string, number
|
|||||||
export const ViewBoxsize = writable({ width: 12 * 16, height: 12 * 16 }); // Default width and height in pixels
|
export const ViewBoxsize = writable({ width: 12 * 16, height: 12 * 16 }); // Default width and height in pixels
|
||||||
export const settingsOpen = writable(false)
|
export const settingsOpen = writable(false)
|
||||||
export const botMakerMode = writable(false)
|
export const botMakerMode = writable(false)
|
||||||
|
export const moduleBackgroundEmbedding = writable('')
|
||||||
|
|
||||||
//optimization
|
//optimization
|
||||||
|
|
||||||
@@ -202,12 +203,19 @@ function onModuleUpdate(){
|
|||||||
])
|
])
|
||||||
|
|
||||||
let moduleHideIcon = false
|
let moduleHideIcon = false
|
||||||
|
let backgroundEmbedding = ''
|
||||||
m.forEach((module) => {
|
m.forEach((module) => {
|
||||||
if(module.hideIcon){
|
if(module.hideIcon){
|
||||||
moduleHideIcon = true
|
moduleHideIcon = true
|
||||||
}
|
}
|
||||||
|
if(module.backgroundEmbedding){
|
||||||
|
backgroundEmbedding += '\n' + module.backgroundEmbedding + '\n'
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if(backgroundEmbedding){
|
||||||
|
moduleBackgroundEmbedding.set(backgroundEmbedding)
|
||||||
|
}
|
||||||
HideIconStore.set(characterHideIcon || moduleHideIcon)
|
HideIconStore.set(characterHideIcon || moduleHideIcon)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user