Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions assets/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "The player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Téléporter un événement",
"event_command_teleport_player": "Téléporter le joueur",
"event_command_wait_move_completion": "Attendre la fin des déplacements",
"event_command_wait_move_completion_select": "Attendre",
"event_command_wait_move_completion_select_all": "Tous les événements",
"event_command_wait_move_completion_select_some": "Des événements spécifiques",
"event_command_wait_move_completion_multiselect_label": "Événements à attendre",
"event_command_wait_move_completion_multiselect_static_player": "Le joueur",
"event_command_wait_move_completion_multiselect_static_this_event": "Cet événement",
"event_editor_wait_move_completion_wait_all": "Attendre tous les événements",
"event_editor_wait_move_completion_timeout": "Délai d'attente max",
"event_editor_wait_move_completion_timeout_info": "L’événement continue son exécution si les déplacements prennent plus de temps.",
"event_command_manage_event_reappearance": "Gérer la réapparition de l'événement",
"event_command_manage_path_finding": "Gérer le path finding",
"event_command_manage_follow_me": "Gérer le Follow Me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleportar evento",
"event_command_teleport_player": "Teleportar jogador",
"event_command_wait_move_completion": "Aguardar a conclusão do movimento",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Gerenciar reaparecimento do evento",
"event_command_manage_path_finding": "Gerenciar busca de caminhos",
"event_command_manage_follow_me": "Gerenciar siga-me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/zh_Hans.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
9 changes: 9 additions & 0 deletions assets/i18n/zh_Hant.json
Original file line number Diff line number Diff line change
Expand Up @@ -1812,6 +1812,15 @@
"event_command_teleport_event": "Teleport event",
"event_command_teleport_player": "Teleport player",
"event_command_wait_move_completion": "Wait for move completion",
"event_command_wait_move_completion_select": "Waiting",
"event_command_wait_move_completion_select_all": "All event",
"event_command_wait_move_completion_select_some": "Wait specific events",
"event_command_wait_move_completion_multiselect_label": "Events to wait",
"event_command_wait_move_completion_multiselect_static_player": "Player",
"event_command_wait_move_completion_multiselect_static_this_event": "This event",
"event_editor_wait_move_completion_wait_all": "Wait all events",
"event_editor_wait_move_completion_timeout": "Maximum waiting time",
"event_editor_wait_move_completion_timeout_info": "The event continues to run if travel takes longer.",
"event_command_manage_event_reappearance": "Manage event reappearance",
"event_command_manage_path_finding": "Manage path finding",
"event_command_manage_follow_me": "Manage follow me",
Expand Down
2 changes: 1 addition & 1 deletion psdk-binaries/pokemonsdk
Submodule pokemonsdk updated from 1a85ea to 406792
3 changes: 2 additions & 1 deletion src/backendTasks/convertRMXPEventsToStudioEvents.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { DbSymbol } from '@modelEntities/dbSymbol';
import type { CommandId, StudioEventCommand } from '@modelEntities/event/command';
import type { StudioEventCommand } from '@modelEntities/event/command';
import {
EVENT_START_CSV_FILE_ID,
type Appearance,
Expand All @@ -12,6 +12,7 @@ import {
import { StudioMap } from '@modelEntities/map';
import { findFirstAvailableCsvFileId, findFirstAvailableId } from '@utils/ModelUtils';
import log from 'electron-log';
import { CommandId } from '../models/entities/event/globalCommand';
import { defineBackendServiceFunction } from './defineBackendServiceFunction';
import { readRMXPEvents, RMXPEvent } from './readRMXPEvents';

Expand Down
9 changes: 6 additions & 3 deletions src/designSystem/MultiSelect/MultiSelect.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import DownIcon from '@assets/icons/global/down-icon.svg';
import React from 'react';
import { MultiSelectContainer, MultiSelectTextArea } from './MultiSelectContainer';
import { RenderOptions } from './RenderOptions';
import { MultiSelectProps, useMultiSelect } from './useMultiSelect';
import { MultiSelectContainer, MultiSelectTextArea } from './MultiSelectContainer';
import DownIcon from '@assets/icons/global/down-icon.svg';
import { ValueType } from './useRenderOptions';

export const MultiSelect = <Value extends ValueType, ChooseValue extends Value>(props: MultiSelectProps<Value, ChooseValue>) => {
Expand All @@ -11,9 +11,12 @@ export const MultiSelect = <Value extends ValueType, ChooseValue extends Value>(
chooseValue: (props.chooseValue as Value[]) ?? [],
});

const { name, ...textAreaProps } = inputProps;

return (
<MultiSelectContainer className={`${props.className ?? ''} ${inputProps.invalid ? 'invalid' : ''}`.trim()}>
<MultiSelectTextArea readOnly ref={inputRef} {...inputProps} />
<MultiSelectTextArea readOnly ref={inputRef} {...textAreaProps} />
{name && currentValues.map((val, i) => <input key={i} type="hidden" name={`${name}.${i}`} value={val.toString()} />)}
<DownIcon id="downArrow" />
<RenderOptions currentValues={currentValues} onSelectValue={onSelectValue} utils={optionsUtilsRef} popover={popoverRef} listRef={listRef} />
</MultiSelectContainer>
Expand Down
2 changes: 1 addition & 1 deletion src/designSystem/Select/RenderOptions.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, { MouseEventHandler } from 'react';
import List, { ListRowProps } from 'react-virtualized/dist/es/List';
import { SelectOption } from './types';
import { RenderOptionsProps, useRenderOptions } from './useRenderOptions';
import React, { MouseEventHandler } from 'react';

const CLASSES = ['option', 'option highlighted', 'option current', 'option highlighted current'];

Expand Down
4 changes: 2 additions & 2 deletions src/designSystem/Select/useSelect.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { normalize } from '@utils/normalize';
import {
ChangeEventHandler,
FocusEventHandler,
Expand All @@ -9,10 +10,9 @@ import {
useRef,
useState,
} from 'react';
import type { List } from 'react-virtualized/dist/es/List';
import { RenderOptionRef, SelectOption } from './types';
import { getNotFoundExclusionPattern, getSelectDefaultLabel, positionAndShowPopover } from './utils';
import type { List } from 'react-virtualized/dist/es/List';
import { normalize } from '@utils/normalize';

export type SelectProps<Value extends string, ChooseValue extends string> = {
options: Readonly<SelectOption<Value>[]>;
Expand Down
97 changes: 89 additions & 8 deletions src/hooks/useInputAttrs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { inputAttrs } from '@utils/inputAttrs';
import { basename } from '@utils/path';
import React, { useMemo, useRef, useState } from 'react';
import { z } from 'zod';
import { MultiSelect } from '../designSystem/MultiSelect';

type WithSchemaKeyAndName = {
name: string;
Expand Down Expand Up @@ -80,9 +81,9 @@ export const useInputAttrs = <T extends z.ZodRawShape>(schema: z.ZodObject<T>, d
MultiLineInput: ({ name, schemaKey, ...props }: ReactProps<typeof Input>) => (
<MultiLineInput {...inputAttrs(schema, name, defaults, schemaKey)} {...props} />
),
Select: ({ name, schemaKey, ...props }: ReactProps<typeof Select>) => {
const { type, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
return <Select {...attrs} {...props} />;
Select: ({ name, schemaKey, defaultValue, ...props }: ReactProps<typeof Select>) => {
const { type, defaultValue: _defaultValue, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
return <Select {...attrs} defaultValue={defaultValue ?? _defaultValue} {...props} />;
},
Toggle: ({ name, schemaKey, ...props }: ReactProps<typeof Toggle>) => {
const { type, required, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
Expand Down Expand Up @@ -164,22 +165,56 @@ export const useInputAttrsWithLabel = <T extends z.ZodRawShape>(schema: z.ZodObj
</InputWithTopLabelContainer>
);
},
Select: ({ name, schemaKey, label, labelLeft, ...props }: ReactPropsWithLabel<typeof Select>) => {
const { type, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
if (!label) return <Select {...attrs} {...props} />;
Select: ({ name, schemaKey, label, labelLeft, defaultValue, ...props }: ReactPropsWithLabel<typeof Select>) => {
const { type, defaultValue: _defaultValue, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
if (!label) return <Select {...attrs} defaultValue={defaultValue ?? _defaultValue} {...props} />;

if (labelLeft)
return (
<InputWithLeftLabelContainer>
<Label>{label}</Label>
<Select {...attrs} {...props} />
<Select {...attrs} defaultValue={defaultValue ?? _defaultValue} {...props} />
</InputWithLeftLabelContainer>
);

return (
<InputWithTopLabelContainer>
<Label>{label}</Label>
<Select {...attrs} {...props} />
<Select {...attrs} defaultValue={defaultValue ?? _defaultValue} {...props} />
</InputWithTopLabelContainer>
);
},
MultiSelect: ({
name,
schemaKey,
label,
defaultValue,
selectAllOption,
whenAllOptionSelected,
...props
}: ReactPropsWithLabel<typeof MultiSelect>) => {
const { type, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
if (!label)
return (
<MultiSelect
{...attrs}
defaultValue={defaultValue}
{...props}
selectAllOption={selectAllOption}
whenAllOptionSelected={whenAllOptionSelected}
/>
);

return (
<InputWithTopLabelContainer>
<Label>{label}</Label>
<MultiSelect
{...attrs}
{...props}
defaultValue={defaultValue}
selectAllOption={selectAllOption}
whenAllOptionSelected={whenAllOptionSelected}
/>
</InputWithTopLabelContainer>
);
},
Expand Down Expand Up @@ -232,6 +267,52 @@ export const useNodeInputAttrsWithLabel = <T extends z.ZodRawShape>(schema: z.Zo
</InputWithTopLabelContainer>
);
},
Select: ({ name, schemaKey, label, defaultValue, ...props }: ReactPropsWithLabel<typeof Select>) => {
const { type, defaultValue: _defaultValue, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);

if (!label) return <Select {...attrs} defaultValue={defaultValue ?? _defaultValue} {...props} />;

return (
<InputWithTopLabelContainer>
<Label>{label}</Label>
<Select {...attrs} defaultValue={defaultValue ?? _defaultValue} {...props} />
</InputWithTopLabelContainer>
);
},
MultiSelect: ({
name,
schemaKey,
label,
defaultValue,
selectAllOption,
whenAllOptionSelected,
...props
}: ReactPropsWithLabel<typeof MultiSelect>) => {
const { type, ...attrs } = inputAttrs(schema, name, defaults, schemaKey);
if (!label)
return (
<MultiSelect
{...attrs}
defaultValue={defaultValue}
{...props}
selectAllOption={selectAllOption}
whenAllOptionSelected={whenAllOptionSelected}
/>
);

return (
<InputWithTopLabelContainer>
<Label>{label}</Label>
<MultiSelect
{...attrs}
{...props}
defaultValue={defaultValue}
selectAllOption={selectAllOption}
whenAllOptionSelected={whenAllOptionSelected}
/>
</InputWithTopLabelContainer>
);
},
MultiLineInput: ({ name, schemaKey, label, labelLeft, ...props }: ReactPropsWithLabel<typeof Input>) => {
if (!label) return <NodeMultiLineInput {...inputAttrs(schema, name, defaults, schemaKey)} {...props} />;

Expand Down
Loading
Loading