mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Add an extension category filter (#4341)
This commit is contained in:
@@ -124,7 +124,7 @@ describe('gdjs.TileMapCollisionMaskRuntimeObject', function () {
|
|||||||
index < 200 && tileMap._collisionTileMap.getDimensionX() === 0;
|
index < 200 && tileMap._collisionTileMap.getDimensionX() === 0;
|
||||||
index++
|
index++
|
||||||
) {
|
) {
|
||||||
await delay(5);
|
await delay(10);
|
||||||
}
|
}
|
||||||
if (tileMap._collisionTileMap.getDimensionX() === 0) {
|
if (tileMap._collisionTileMap.getDimensionX() === 0) {
|
||||||
throw new Error('Timeout reading the tile map JSON file.');
|
throw new Error('Timeout reading the tile map JSON file.');
|
||||||
|
@@ -28,6 +28,9 @@ type ExtensionStoreState = {|
|
|||||||
error: ?Error,
|
error: ?Error,
|
||||||
searchText: string,
|
searchText: string,
|
||||||
setSearchText: string => void,
|
setSearchText: string => void,
|
||||||
|
allCategories: string[],
|
||||||
|
chosenCategory: string,
|
||||||
|
setChosenCategory: string => void,
|
||||||
extensionShortHeadersByName: { [name: string]: ExtensionShortHeader },
|
extensionShortHeadersByName: { [name: string]: ExtensionShortHeader },
|
||||||
filtersState: FiltersState,
|
filtersState: FiltersState,
|
||||||
|};
|
|};
|
||||||
@@ -39,6 +42,10 @@ export const ExtensionStoreContext = React.createContext<ExtensionStoreState>({
|
|||||||
error: null,
|
error: null,
|
||||||
searchText: '',
|
searchText: '',
|
||||||
setSearchText: () => {},
|
setSearchText: () => {},
|
||||||
|
allCategories: [],
|
||||||
|
// '' means all categories.
|
||||||
|
chosenCategory: '',
|
||||||
|
setChosenCategory: () => {},
|
||||||
extensionShortHeadersByName: {},
|
extensionShortHeadersByName: {},
|
||||||
filtersState: {
|
filtersState: {
|
||||||
chosenFilters: new Set(),
|
chosenFilters: new Set(),
|
||||||
@@ -67,6 +74,7 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
const preferences = React.useContext(PreferencesContext);
|
const preferences = React.useContext(PreferencesContext);
|
||||||
const { showCommunityExtensions } = preferences.values;
|
const { showCommunityExtensions } = preferences.values;
|
||||||
const [filters, setFilters] = React.useState<?Filters>(null);
|
const [filters, setFilters] = React.useState<?Filters>(null);
|
||||||
|
const [allCategories, setAllCategories] = React.useState<Array<string>>([]);
|
||||||
const [firstExtensionIds, setFirstExtensionIds] = React.useState<
|
const [firstExtensionIds, setFirstExtensionIds] = React.useState<
|
||||||
Array<string>
|
Array<string>
|
||||||
>([]);
|
>([]);
|
||||||
@@ -76,6 +84,7 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
const [searchText, setSearchText] = React.useState(
|
const [searchText, setSearchText] = React.useState(
|
||||||
defaultSearchText || emptySearchText
|
defaultSearchText || emptySearchText
|
||||||
);
|
);
|
||||||
|
const [chosenCategory, setChosenCategory] = React.useState('');
|
||||||
const filtersState = useFilters();
|
const filtersState = useFilters();
|
||||||
|
|
||||||
const fetchExtensionsAndFilters = React.useCallback(
|
const fetchExtensionsAndFilters = React.useCallback(
|
||||||
@@ -91,13 +100,22 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const extensionRegistry: ExtensionsRegistry = await getExtensionsRegistry();
|
const extensionRegistry: ExtensionsRegistry = await getExtensionsRegistry();
|
||||||
const { extensionShortHeaders, allTags } = extensionRegistry;
|
const {
|
||||||
|
extensionShortHeaders,
|
||||||
|
allTags,
|
||||||
|
allCategories,
|
||||||
|
} = extensionRegistry;
|
||||||
|
|
||||||
const sortedTags = allTags
|
const sortedTags = allTags
|
||||||
.slice()
|
.slice()
|
||||||
.sort((tag1, tag2) =>
|
.sort((tag1, tag2) =>
|
||||||
tag1.toLowerCase().localeCompare(tag2.toLowerCase())
|
tag1.toLowerCase().localeCompare(tag2.toLowerCase())
|
||||||
);
|
);
|
||||||
|
const sortedCategories = allCategories
|
||||||
|
.slice()
|
||||||
|
.sort((tag1, tag2) =>
|
||||||
|
tag1.toLowerCase().localeCompare(tag2.toLowerCase())
|
||||||
|
);
|
||||||
|
|
||||||
const extensionShortHeadersByName = {};
|
const extensionShortHeadersByName = {};
|
||||||
extensionShortHeaders.forEach(extension => {
|
extensionShortHeaders.forEach(extension => {
|
||||||
@@ -115,6 +133,7 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
defaultTags: sortedTags,
|
defaultTags: sortedTags,
|
||||||
tagsTree: [],
|
tagsTree: [],
|
||||||
});
|
});
|
||||||
|
setAllCategories(sortedCategories);
|
||||||
setFirstExtensionIds(
|
setFirstExtensionIds(
|
||||||
extensionRegistry.views
|
extensionRegistry.views
|
||||||
? extensionRegistry.views.default.firstExtensionIds
|
? extensionRegistry.views.default.firstExtensionIds
|
||||||
@@ -150,14 +169,14 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
[fetchExtensionsAndFilters, extensionShortHeadersByName, isLoading]
|
[fetchExtensionsAndFilters, extensionShortHeadersByName, isLoading]
|
||||||
);
|
);
|
||||||
|
|
||||||
const { chosenCategory, chosenFilters } = filtersState;
|
|
||||||
const searchResults: ?Array<{|
|
const searchResults: ?Array<{|
|
||||||
item: ExtensionShortHeader,
|
item: ExtensionShortHeader,
|
||||||
matches: SearchMatch[],
|
matches: SearchMatch[],
|
||||||
|}> = useSearchStructuredItem(extensionShortHeadersByName, {
|
|}> = useSearchStructuredItem(extensionShortHeadersByName, {
|
||||||
searchText,
|
searchText,
|
||||||
chosenCategory,
|
chosenItemCategory: chosenCategory,
|
||||||
chosenFilters,
|
chosenCategory: filtersState.chosenCategory,
|
||||||
|
chosenFilters: filtersState.chosenFilters,
|
||||||
excludedTiers: showCommunityExtensions
|
excludedTiers: showCommunityExtensions
|
||||||
? noExcludedTiers
|
? noExcludedTiers
|
||||||
: excludedCommunityTiers,
|
: excludedCommunityTiers,
|
||||||
@@ -169,6 +188,9 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
searchResults,
|
searchResults,
|
||||||
fetchExtensionsAndFilters,
|
fetchExtensionsAndFilters,
|
||||||
filters,
|
filters,
|
||||||
|
allCategories,
|
||||||
|
chosenCategory,
|
||||||
|
setChosenCategory,
|
||||||
error,
|
error,
|
||||||
searchText,
|
searchText,
|
||||||
setSearchText,
|
setSearchText,
|
||||||
@@ -179,6 +201,9 @@ export const ExtensionStoreStateProvider = ({
|
|||||||
searchResults,
|
searchResults,
|
||||||
error,
|
error,
|
||||||
filters,
|
filters,
|
||||||
|
allCategories,
|
||||||
|
chosenCategory,
|
||||||
|
setChosenCategory,
|
||||||
searchText,
|
searchText,
|
||||||
extensionShortHeadersByName,
|
extensionShortHeadersByName,
|
||||||
filtersState,
|
filtersState,
|
||||||
|
@@ -17,7 +17,11 @@ import {
|
|||||||
import useDismissableTutorialMessage from '../../Hints/useDismissableTutorialMessage';
|
import useDismissableTutorialMessage from '../../Hints/useDismissableTutorialMessage';
|
||||||
import { t } from '@lingui/macro';
|
import { t } from '@lingui/macro';
|
||||||
import { ColumnStackLayout } from '../../UI/Layout';
|
import { ColumnStackLayout } from '../../UI/Layout';
|
||||||
|
import { Column } from '../../UI/Grid';
|
||||||
import PreferencesContext from '../../MainFrame/Preferences/PreferencesContext';
|
import PreferencesContext from '../../MainFrame/Preferences/PreferencesContext';
|
||||||
|
import { ResponsiveLineStackLayout } from '../../UI/Layout';
|
||||||
|
import SearchBarSelectField from '../../UI/SearchBarSelectField';
|
||||||
|
import SelectOption from '../../UI/SelectOption';
|
||||||
|
|
||||||
type Props = {|
|
type Props = {|
|
||||||
isInstalling: boolean,
|
isInstalling: boolean,
|
||||||
@@ -48,6 +52,9 @@ export const ExtensionStore = ({
|
|||||||
filtersState,
|
filtersState,
|
||||||
searchText,
|
searchText,
|
||||||
setSearchText,
|
setSearchText,
|
||||||
|
allCategories,
|
||||||
|
chosenCategory,
|
||||||
|
setChosenCategory,
|
||||||
} = React.useContext(ExtensionStoreContext);
|
} = React.useContext(ExtensionStoreContext);
|
||||||
|
|
||||||
React.useEffect(
|
React.useEffect(
|
||||||
@@ -94,14 +101,33 @@ export const ExtensionStore = ({
|
|||||||
{windowWidth => (
|
{windowWidth => (
|
||||||
<ColumnStackLayout expand noMargin useFullHeight>
|
<ColumnStackLayout expand noMargin useFullHeight>
|
||||||
<ColumnStackLayout>
|
<ColumnStackLayout>
|
||||||
<SearchBar
|
<ResponsiveLineStackLayout noMargin>
|
||||||
value={searchText}
|
<SearchBarSelectField
|
||||||
onChange={setSearchText}
|
value={chosenCategory}
|
||||||
onRequestSearch={() => {}}
|
onChange={(e, i, value: string) => {
|
||||||
tagsHandler={tagsHandler}
|
setChosenCategory(value);
|
||||||
tags={filters && filters.allTags}
|
}}
|
||||||
placeholder={t`Search extensions`}
|
>
|
||||||
/>
|
<SelectOption value="" primaryText={t`All categories`} />
|
||||||
|
{allCategories.map(category => (
|
||||||
|
<SelectOption
|
||||||
|
key={category}
|
||||||
|
value={category}
|
||||||
|
primaryText={category}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</SearchBarSelectField>
|
||||||
|
<Column expand noMargin>
|
||||||
|
<SearchBar
|
||||||
|
value={searchText}
|
||||||
|
onChange={setSearchText}
|
||||||
|
onRequestSearch={() => {}}
|
||||||
|
tagsHandler={tagsHandler}
|
||||||
|
tags={filters && filters.allTags}
|
||||||
|
placeholder={t`Search extensions`}
|
||||||
|
/>
|
||||||
|
</Column>
|
||||||
|
</ResponsiveLineStackLayout>
|
||||||
<Toggle
|
<Toggle
|
||||||
onToggle={(e, check) =>
|
onToggle={(e, check) =>
|
||||||
preferences.setShowCommunityExtensions(check)
|
preferences.setShowCommunityExtensions(check)
|
||||||
|
@@ -462,6 +462,7 @@ describe('InstallAsset', () => {
|
|||||||
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
allTags: [''],
|
allTags: [''],
|
||||||
|
allCategories: [''],
|
||||||
extensionShortHeaders: [
|
extensionShortHeaders: [
|
||||||
flashExtensionShortHeader,
|
flashExtensionShortHeader,
|
||||||
fireBulletExtensionShortHeader,
|
fireBulletExtensionShortHeader,
|
||||||
@@ -481,6 +482,7 @@ describe('InstallAsset', () => {
|
|||||||
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
allTags: [''],
|
allTags: [''],
|
||||||
|
allCategories: [''],
|
||||||
extensionShortHeaders: [
|
extensionShortHeaders: [
|
||||||
flashExtensionShortHeader,
|
flashExtensionShortHeader,
|
||||||
fireBulletExtensionShortHeader,
|
fireBulletExtensionShortHeader,
|
||||||
@@ -627,6 +629,7 @@ describe('InstallAsset', () => {
|
|||||||
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
allTags: [''],
|
allTags: [''],
|
||||||
|
allCategories: [''],
|
||||||
extensionShortHeaders: [
|
extensionShortHeaders: [
|
||||||
flashExtensionShortHeader,
|
flashExtensionShortHeader,
|
||||||
fireBulletExtensionShortHeader,
|
fireBulletExtensionShortHeader,
|
||||||
@@ -664,6 +667,7 @@ describe('InstallAsset', () => {
|
|||||||
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
mockFn(getExtensionsRegistry).mockImplementationOnce(() => ({
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
allTags: [''],
|
allTags: [''],
|
||||||
|
allCategories: [''],
|
||||||
extensionShortHeaders: [
|
extensionShortHeaders: [
|
||||||
flashExtensionShortHeader,
|
flashExtensionShortHeader,
|
||||||
fireBulletExtensionShortHeader,
|
fireBulletExtensionShortHeader,
|
||||||
|
@@ -16,6 +16,7 @@ export type SearchResult<T> = {|
|
|||||||
|
|
||||||
type SearchOptions = {|
|
type SearchOptions = {|
|
||||||
searchText: string,
|
searchText: string,
|
||||||
|
chosenItemCategory?: string,
|
||||||
chosenCategory: ?ChosenCategory,
|
chosenCategory: ?ChosenCategory,
|
||||||
chosenFilters: Set<string>,
|
chosenFilters: Set<string>,
|
||||||
excludedTiers: Set<string>,
|
excludedTiers: Set<string>,
|
||||||
@@ -75,9 +76,11 @@ export const filterSearchResults = <
|
|||||||
tags: Array<string>,
|
tags: Array<string>,
|
||||||
// Some search items can have tiers:
|
// Some search items can have tiers:
|
||||||
+tier?: string,
|
+tier?: string,
|
||||||
|
+category?: string,
|
||||||
}
|
}
|
||||||
>(
|
>(
|
||||||
searchResults: ?Array<SearchResult<SearchItem>>,
|
searchResults: ?Array<SearchResult<SearchItem>>,
|
||||||
|
chosenItemCategory: ?string,
|
||||||
chosenCategory: ?ChosenCategory,
|
chosenCategory: ?ChosenCategory,
|
||||||
chosenFilters: Set<string>,
|
chosenFilters: Set<string>,
|
||||||
excludedTiers: Set<string>
|
excludedTiers: Set<string>
|
||||||
@@ -86,6 +89,9 @@ export const filterSearchResults = <
|
|||||||
|
|
||||||
const startTime = performance.now();
|
const startTime = performance.now();
|
||||||
const filteredSearchResults = searchResults
|
const filteredSearchResults = searchResults
|
||||||
|
.filter(
|
||||||
|
({ item }) => !chosenItemCategory || item.category === chosenItemCategory
|
||||||
|
)
|
||||||
.filter(({ item: { tags } }) => {
|
.filter(({ item: { tags } }) => {
|
||||||
if (!chosenCategory) return true;
|
if (!chosenCategory) return true;
|
||||||
|
|
||||||
@@ -136,11 +142,13 @@ export const useSearchStructuredItem = <
|
|||||||
tags: Array<string>,
|
tags: Array<string>,
|
||||||
// Some search items can have tiers:
|
// Some search items can have tiers:
|
||||||
+tier?: string,
|
+tier?: string,
|
||||||
|
+category?: string,
|
||||||
}
|
}
|
||||||
>(
|
>(
|
||||||
searchItemsById: ?{ [string]: SearchItem },
|
searchItemsById: ?{ [string]: SearchItem },
|
||||||
{
|
{
|
||||||
searchText,
|
searchText,
|
||||||
|
chosenItemCategory,
|
||||||
chosenCategory,
|
chosenCategory,
|
||||||
chosenFilters,
|
chosenFilters,
|
||||||
excludedTiers,
|
excludedTiers,
|
||||||
@@ -228,6 +236,7 @@ export const useSearchStructuredItem = <
|
|||||||
setSearchResults(
|
setSearchResults(
|
||||||
filterSearchResults(
|
filterSearchResults(
|
||||||
orderedSearchResults,
|
orderedSearchResults,
|
||||||
|
chosenItemCategory,
|
||||||
chosenCategory,
|
chosenCategory,
|
||||||
chosenFilters,
|
chosenFilters,
|
||||||
excludedTiers
|
excludedTiers
|
||||||
@@ -259,6 +268,7 @@ export const useSearchStructuredItem = <
|
|||||||
item: result.item,
|
item: result.item,
|
||||||
matches: tuneMatches(result, searchText),
|
matches: tuneMatches(result, searchText),
|
||||||
})),
|
})),
|
||||||
|
chosenItemCategory,
|
||||||
chosenCategory,
|
chosenCategory,
|
||||||
chosenFilters,
|
chosenFilters,
|
||||||
excludedTiers
|
excludedTiers
|
||||||
@@ -276,6 +286,7 @@ export const useSearchStructuredItem = <
|
|||||||
orderedSearchResults,
|
orderedSearchResults,
|
||||||
searchItemsById,
|
searchItemsById,
|
||||||
searchText,
|
searchText,
|
||||||
|
chosenItemCategory,
|
||||||
chosenCategory,
|
chosenCategory,
|
||||||
chosenFilters,
|
chosenFilters,
|
||||||
searchApi,
|
searchApi,
|
||||||
|
176
newIDE/app/src/UI/SearchBarSelectField.js
Normal file
176
newIDE/app/src/UI/SearchBarSelectField.js
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
// @flow
|
||||||
|
import { t } from '@lingui/macro';
|
||||||
|
import * as React from 'react';
|
||||||
|
import { I18n } from '@lingui/react';
|
||||||
|
import TextField from '@material-ui/core/TextField';
|
||||||
|
import { type MessageDescriptor } from '../Utils/i18n/MessageDescriptor.flow';
|
||||||
|
import { makeStyles } from '@material-ui/core';
|
||||||
|
import GDevelopThemeContext from './Theme/ThemeContext';
|
||||||
|
import Paper from '@material-ui/core/Paper';
|
||||||
|
|
||||||
|
const INVALID_VALUE = '';
|
||||||
|
const stopPropagation = event => event.stopPropagation();
|
||||||
|
|
||||||
|
const useSelectStyles = textAlign =>
|
||||||
|
makeStyles({
|
||||||
|
root: {
|
||||||
|
textAlign: textAlign || 'left',
|
||||||
|
cursor: 'default',
|
||||||
|
},
|
||||||
|
})();
|
||||||
|
|
||||||
|
const styles = {
|
||||||
|
root: {
|
||||||
|
height: 30,
|
||||||
|
display: 'flex',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
},
|
||||||
|
input: {
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
searchContainer: {
|
||||||
|
position: 'relative',
|
||||||
|
margin: 'auto 8px',
|
||||||
|
width: '100%',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export type SearchBarSelectFieldInterface = {| focus: () => void |};
|
||||||
|
|
||||||
|
type ValueProps = {|
|
||||||
|
value: number | string,
|
||||||
|
// event and index should not be used, and be removed eventually
|
||||||
|
onChange?: (
|
||||||
|
event: {| target: {| value: string |} |},
|
||||||
|
index: number,
|
||||||
|
text: string // Note that even for number values, a string is returned
|
||||||
|
) => void,
|
||||||
|
|};
|
||||||
|
|
||||||
|
// We support a subset of the props supported by Material-UI v0.x SelectField
|
||||||
|
// They should be self descriptive - refer to Material UI docs otherwise.
|
||||||
|
type Props = {|
|
||||||
|
...ValueProps,
|
||||||
|
fullWidth?: boolean,
|
||||||
|
children: React.Node,
|
||||||
|
disabled?: boolean,
|
||||||
|
stopPropagationOnClick?: boolean,
|
||||||
|
|
||||||
|
style?: {
|
||||||
|
flex?: 1,
|
||||||
|
width?: 'auto',
|
||||||
|
},
|
||||||
|
margin?: 'none' | 'dense',
|
||||||
|
textAlign?: 'center',
|
||||||
|
|
||||||
|
helperMarkdownText?: ?string,
|
||||||
|
|
||||||
|
// If a hint text is specified, will be shown as an option for the empty
|
||||||
|
// value (""), disabled.
|
||||||
|
translatableHintText?: MessageDescriptor,
|
||||||
|
|};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A select field based on Material-UI select field.
|
||||||
|
* To be used with `SelectOption`.
|
||||||
|
*/
|
||||||
|
const SearchBarSelectField = React.forwardRef<
|
||||||
|
Props,
|
||||||
|
SearchBarSelectFieldInterface
|
||||||
|
>((props, ref) => {
|
||||||
|
const inputRef = React.useRef<?HTMLInputElement>(null);
|
||||||
|
const focus = React.useCallback(
|
||||||
|
() => {
|
||||||
|
if (inputRef.current) {
|
||||||
|
inputRef.current.focus();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[inputRef]
|
||||||
|
);
|
||||||
|
React.useImperativeHandle(ref, () => ({
|
||||||
|
focus,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const gdevelopTheme = React.useContext(GDevelopThemeContext);
|
||||||
|
const selectStyles = useSelectStyles(props.textAlign);
|
||||||
|
|
||||||
|
const onChange = props.onChange || undefined;
|
||||||
|
|
||||||
|
// Dig into children props to see if the current value is valid or not.
|
||||||
|
let hasValidValue = true;
|
||||||
|
const childrenValues = React.Children.map(props.children, child => {
|
||||||
|
if (child === null || !child.props) return null;
|
||||||
|
|
||||||
|
return child.props.value;
|
||||||
|
});
|
||||||
|
if (!childrenValues) {
|
||||||
|
console.error(
|
||||||
|
'SelectField has been passed no or invalid children. Only SelectOption and null are supported.'
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
hasValidValue =
|
||||||
|
childrenValues.filter(childValue => childValue === props.value).length !==
|
||||||
|
0;
|
||||||
|
}
|
||||||
|
const displayedValue = hasValidValue ? props.value : INVALID_VALUE;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<I18n>
|
||||||
|
{({ i18n }) => (
|
||||||
|
<Paper
|
||||||
|
style={{
|
||||||
|
backgroundColor: gdevelopTheme.searchBar.backgroundColor,
|
||||||
|
...styles.root,
|
||||||
|
}}
|
||||||
|
square={false}
|
||||||
|
elevation={0}
|
||||||
|
>
|
||||||
|
<div style={styles.searchContainer}>
|
||||||
|
<TextField
|
||||||
|
select
|
||||||
|
color="secondary"
|
||||||
|
disabled={props.disabled}
|
||||||
|
fullWidth={props.fullWidth}
|
||||||
|
value={displayedValue}
|
||||||
|
onClick={
|
||||||
|
props.stopPropagationOnClick ? stopPropagation : undefined
|
||||||
|
}
|
||||||
|
onChange={
|
||||||
|
onChange
|
||||||
|
? event => {
|
||||||
|
onChange(event, -1, event.target.value);
|
||||||
|
}
|
||||||
|
: undefined
|
||||||
|
}
|
||||||
|
InputProps={{
|
||||||
|
style: styles.input,
|
||||||
|
disableUnderline: true,
|
||||||
|
}}
|
||||||
|
InputLabelProps={{
|
||||||
|
shrink: true,
|
||||||
|
}}
|
||||||
|
SelectProps={{
|
||||||
|
native: true,
|
||||||
|
classes: selectStyles,
|
||||||
|
}}
|
||||||
|
margin="none"
|
||||||
|
style={styles.input}
|
||||||
|
inputRef={inputRef}
|
||||||
|
>
|
||||||
|
{!hasValidValue ? (
|
||||||
|
<option value={INVALID_VALUE} disabled>
|
||||||
|
{props.translatableHintText
|
||||||
|
? i18n._(props.translatableHintText)
|
||||||
|
: i18n._(t`Choose an option`)}
|
||||||
|
</option>
|
||||||
|
) : null}
|
||||||
|
{props.children}
|
||||||
|
</TextField>
|
||||||
|
</div>
|
||||||
|
</Paper>
|
||||||
|
)}
|
||||||
|
</I18n>
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
export default SearchBarSelectField;
|
@@ -9,6 +9,7 @@ type ExtensionTier = 'community' | 'reviewed';
|
|||||||
export type ExtensionShortHeader = {|
|
export type ExtensionShortHeader = {|
|
||||||
tier: ExtensionTier,
|
tier: ExtensionTier,
|
||||||
shortDescription: string,
|
shortDescription: string,
|
||||||
|
authorIds: Array<string>,
|
||||||
authors?: Array<UserPublicProfile>,
|
authors?: Array<UserPublicProfile>,
|
||||||
extensionNamespace: string,
|
extensionNamespace: string,
|
||||||
fullName: string,
|
fullName: string,
|
||||||
@@ -18,6 +19,7 @@ export type ExtensionShortHeader = {|
|
|||||||
url: string,
|
url: string,
|
||||||
headerUrl: string,
|
headerUrl: string,
|
||||||
tags: Array<string>,
|
tags: Array<string>,
|
||||||
|
category: string,
|
||||||
previewIconUrl: string,
|
previewIconUrl: string,
|
||||||
eventsBasedBehaviorsCount: number,
|
eventsBasedBehaviorsCount: number,
|
||||||
eventsFunctionsCount: number,
|
eventsFunctionsCount: number,
|
||||||
@@ -47,6 +49,7 @@ export type SerializedExtension = {
|
|||||||
export type ExtensionsRegistry = {
|
export type ExtensionsRegistry = {
|
||||||
version: string,
|
version: string,
|
||||||
allTags: Array<string>,
|
allTags: Array<string>,
|
||||||
|
allCategories: Array<string>,
|
||||||
extensionShortHeaders: Array<ExtensionShortHeader>,
|
extensionShortHeaders: Array<ExtensionShortHeader>,
|
||||||
views?: {
|
views?: {
|
||||||
default: {
|
default: {
|
||||||
|
@@ -1,6 +1,11 @@
|
|||||||
|
// @flow
|
||||||
import { type ExtensionsRegistry } from '../../Utils/GDevelopServices/Extension';
|
import { type ExtensionsRegistry } from '../../Utils/GDevelopServices/Extension';
|
||||||
|
import { type ExtensionShortHeader } from '../../Utils/GDevelopServices/Extension';
|
||||||
|
|
||||||
export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
export const fakeExtensionsRegistry: ExtensionsRegistry & {
|
||||||
|
// The service gives CSV but it's converted on the fly to an array.
|
||||||
|
extensionShortHeaders: Array<ExtensionShortHeader & { tags: any }>,
|
||||||
|
} = {
|
||||||
version: '0.0.1',
|
version: '0.0.1',
|
||||||
allTags: [
|
allTags: [
|
||||||
'ledge tolerance',
|
'ledge tolerance',
|
||||||
@@ -424,6 +429,21 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
'sdk',
|
'sdk',
|
||||||
'ads',
|
'ads',
|
||||||
],
|
],
|
||||||
|
allCategories: [
|
||||||
|
'Movement',
|
||||||
|
'Network',
|
||||||
|
'User interface',
|
||||||
|
'General',
|
||||||
|
'Input',
|
||||||
|
'Advanced',
|
||||||
|
'Camera',
|
||||||
|
'Game mechanic',
|
||||||
|
'Visual effect',
|
||||||
|
'Third-party',
|
||||||
|
'Ads',
|
||||||
|
'Audio',
|
||||||
|
'Device',
|
||||||
|
],
|
||||||
views: {
|
views: {
|
||||||
default: {
|
default: {
|
||||||
firstExtensionIds: [
|
firstExtensionIds: [
|
||||||
@@ -448,13 +468,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/SomeAlreadyInstalledExtension-header.json',
|
'https://resources.gdevelop-app.com/extensions/SomeAlreadyInstalledExtension-header.json',
|
||||||
tags: 'ledge tolerance,jump,platform',
|
tags: 'ledge tolerance,jump,platform',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Sports and Fitness/Sports and Fitness_training_running_run.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Sports and Fitness/Sports and Fitness_training_running_run.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'this-is-a-fake-id', username: 'Fake author' },
|
{ id: 'this-is-a-fake-id', username: 'Fake author', description: '' },
|
||||||
{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' },
|
{
|
||||||
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -470,13 +495,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/AdvancedJump-header.json',
|
'https://resources.gdevelop-app.com/extensions/AdvancedJump-header.json',
|
||||||
tags: 'ledge tolerance,jump,platform',
|
tags: 'ledge tolerance,jump,platform',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Sports and Fitness/Sports and Fitness_training_running_run.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Sports and Fitness/Sports and Fitness_training_running_run.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'this-is-a-fake-id', username: 'Fake author' },
|
{ id: 'this-is-a-fake-id', username: 'Fake author', description: '' },
|
||||||
{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' },
|
{
|
||||||
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -493,11 +523,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/AdvancedP2PEventHandling-header.json',
|
'https://resources.gdevelop-app.com/extensions/AdvancedP2PEventHandling-header.json',
|
||||||
tags: 'p2p,performance,advanced',
|
tags: 'p2p,performance,advanced',
|
||||||
|
category: 'Network',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Applications and Programming/Applications and Programming_sitemap_map_ux_application.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Applications and Programming/Applications and Programming_sitemap_map_ux_application.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 1,
|
eventsFunctionsCount: 1,
|
||||||
authors: [{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'community',
|
tier: 'community',
|
||||||
@@ -512,12 +549,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/AlignObject-header.json',
|
'https://resources.gdevelop-app.com/extensions/AlignObject-header.json',
|
||||||
tags: 'align,alignment,center',
|
tags: 'align,alignment,center',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/format-vertical-align-center.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/format-vertical-align-center.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 14,
|
eventsFunctionsCount: 14,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'I0kdjvsICFML0APq45CZjZ6PyEQ2', username: 'Fake user #EQ2' },
|
{
|
||||||
|
id: 'I0kdjvsICFML0APq45CZjZ6PyEQ2',
|
||||||
|
username: 'Fake user #EQ2',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -534,11 +576,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/AnimatedBackAndForthMovement-header.json',
|
'https://resources.gdevelop-app.com/extensions/AnimatedBackAndForthMovement-header.json',
|
||||||
tags: 'back,forth,movement',
|
tags: 'back,forth,movement',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [{ id: 'wWP8BSlAW0UP4NeaHa2LcmmDzmH2', username: '4ian' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'wWP8BSlAW0UP4NeaHa2LcmmDzmH2',
|
||||||
|
username: '4ian',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -554,11 +603,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
'https://resources.gdevelop-app.com/extensions/ArrayTools-header.json',
|
'https://resources.gdevelop-app.com/extensions/ArrayTools-header.json',
|
||||||
tags:
|
tags:
|
||||||
'array,variable,index,tool,math,string,sort,find,slice,cut,random,copy,combine,concat,append,insert',
|
'array,variable,index,tool,math,string,sort,find,slice,cut,random,copy,combine,concat,append,insert',
|
||||||
|
category: 'General',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/code-array.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/code-array.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 31,
|
eventsFunctionsCount: 31,
|
||||||
authors: [{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -573,11 +629,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/AutoTyping-header.json',
|
'https://resources.gdevelop-app.com/extensions/AutoTyping-header.json',
|
||||||
tags: 'text,bbtext,dialogue,visual novel,autotyping,bitmap',
|
tags: 'text,bbtext,dialogue,visual novel,autotyping,bitmap',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/typewriter.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/typewriter.svg',
|
||||||
eventsBasedBehaviorsCount: 3,
|
eventsBasedBehaviorsCount: 3,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [{ id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92', username: 'Bouh' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92',
|
||||||
|
username: 'Bouh',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -591,11 +654,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/BackButton-header.json',
|
'https://resources.gdevelop-app.com/extensions/BackButton-header.json',
|
||||||
tags: 'back,mobile,button,input',
|
tags: 'back,mobile,button,input',
|
||||||
|
category: 'Input',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/keyboard-backspace.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/keyboard-backspace.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 4,
|
eventsFunctionsCount: 4,
|
||||||
authors: [{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -610,12 +680,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/BaseConversion-header.json',
|
'https://resources.gdevelop-app.com/extensions/BaseConversion-header.json',
|
||||||
tags: 'binary,numbers,number,base,hex,decimal',
|
tags: 'binary,numbers,number,base,hex,decimal',
|
||||||
|
category: 'Advanced',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/hexadecimal.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/hexadecimal.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 2,
|
eventsFunctionsCount: 2,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'onPsboRtDkUHNOsx7OPr8R8G1oj2', username: 'Fake user #oj2' },
|
{
|
||||||
|
id: 'onPsboRtDkUHNOsx7OPr8R8G1oj2',
|
||||||
|
username: 'Fake user #oj2',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -631,12 +706,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/BehaviorRemapper-header.json',
|
'https://resources.gdevelop-app.com/extensions/BehaviorRemapper-header.json',
|
||||||
tags: 'remapper,key,bindings,presets,platformer,top-down',
|
tags: 'remapper,key,bindings,presets,platformer,top-down',
|
||||||
|
category: 'Input',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/alpha-w-box-outline.svg',
|
||||||
eventsBasedBehaviorsCount: 2,
|
eventsBasedBehaviorsCount: 2,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'AlZ3D1xkH0QDao7T37VZZUeYNpn1', username: 'Fake user #pn1' },
|
{
|
||||||
|
id: 'AlZ3D1xkH0QDao7T37VZZUeYNpn1',
|
||||||
|
username: 'Fake user #pn1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -654,13 +734,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/BoidsMovement-header.json',
|
'https://resources.gdevelop-app.com/extensions/BoidsMovement-header.json',
|
||||||
tags: 'flock,swarm,boids,crowd,horde',
|
tags: 'flock,swarm,boids,crowd,horde',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Restaurant/Restaurant_restaurant_seafood_animal_fish.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Restaurant/Restaurant_restaurant_seafood_animal_fish.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 1,
|
eventsFunctionsCount: 1,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'rotBq28wITdtfsrE7McHQri4k2w2', username: 'Fake user #2w2' },
|
{
|
||||||
{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' },
|
id: 'rotBq28wITdtfsrE7McHQri4k2w2',
|
||||||
|
username: 'Fake user #2w2',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -676,13 +765,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Boomerang-header.json',
|
'https://resources.gdevelop-app.com/extensions/Boomerang-header.json',
|
||||||
tags: 'boomerang,throw,attack,projectile,ricochet,rebound,launch',
|
tags: 'boomerang,throw,attack,projectile,ricochet,rebound,launch',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/boomerang.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/boomerang.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'this-is-a-fake-id', username: 'Fake author' },
|
{ id: 'this-is-a-fake-id', username: 'Fake author', description: '' },
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -698,11 +792,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Bounce-header.json',
|
'https://resources.gdevelop-app.com/extensions/Bounce-header.json',
|
||||||
tags: 'bounce,bullet',
|
tags: 'bounce,bullet',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/volleyball.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/volleyball.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [{ id: 'wWP8BSlAW0UP4NeaHa2LcmmDzmH2', username: '4ian' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'wWP8BSlAW0UP4NeaHa2LcmmDzmH2',
|
||||||
|
username: '4ian',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -720,13 +821,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CameraShake-header.json',
|
'https://resources.gdevelop-app.com/extensions/CameraShake-header.json',
|
||||||
tags: 'shaking,camera,effect,screen,shake,zoom,position,rotate',
|
tags: 'shaking,camera,effect,screen,shake,zoom,position,rotate',
|
||||||
|
category: 'Camera',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/vector-difference-ab.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/vector-difference-ab.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 4,
|
eventsFunctionsCount: 4,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
{ id: 'm4hBMBTUilft4s1V4FQQPakVDGx1', username: 'Fake user #Gx1' },
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'm4hBMBTUilft4s1V4FQQPakVDGx1',
|
||||||
|
username: 'Fake user #Gx1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -745,13 +855,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CameraZoom-header.json',
|
'https://resources.gdevelop-app.com/extensions/CameraZoom-header.json',
|
||||||
tags: 'Camera,Layer,Zoom',
|
tags: 'Camera,Layer,Zoom',
|
||||||
|
category: 'Camera',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_zoom_in_plus.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_zoom_in_plus.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' },
|
{
|
||||||
{ id: '30b1QQoYi1gQQHzIjMlNY8aLyYV2', username: 'Fake user #YV2' },
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '30b1QQoYi1gQQHzIjMlNY8aLyYV2',
|
||||||
|
username: 'Fake user #YV2',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -768,11 +887,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CancellableDraggable-header.json',
|
'https://resources.gdevelop-app.com/extensions/CancellableDraggable-header.json',
|
||||||
tags: 'drag,drop',
|
tags: 'drag,drop',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/step-backward.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/step-backward.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -787,12 +913,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Checkbox-header.json',
|
'https://resources.gdevelop-app.com/extensions/Checkbox-header.json',
|
||||||
tags: 'checkbox,ui,widget,shape painter,toggle,checkmark',
|
tags: 'checkbox,ui,widget,shape painter,toggle,checkmark',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/checkbox-marked.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/checkbox-marked.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -810,13 +941,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Checkpoints-header.json',
|
'https://resources.gdevelop-app.com/extensions/Checkpoints-header.json',
|
||||||
tags: 'position,checkpoint',
|
tags: 'position,checkpoint',
|
||||||
|
category: 'Game mechanic',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/flag-variant.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/flag-variant.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: '30b1QQoYi1gQQHzIjMlNY8aLyYV2', username: 'Fake user #YV2' },
|
{
|
||||||
{ id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92', username: 'Bouh' },
|
id: '30b1QQoYi1gQQHzIjMlNY8aLyYV2',
|
||||||
|
username: 'Fake user #YV2',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92',
|
||||||
|
username: 'Bouh',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -832,12 +972,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Choose-header.json',
|
'https://resources.gdevelop-app.com/extensions/Choose-header.json',
|
||||||
tags: 'choose,random',
|
tags: 'choose,random',
|
||||||
|
category: 'General',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/dice-multiple.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/dice-multiple.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 2,
|
eventsFunctionsCount: 2,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'ZShmW1xkW7WWl9AkB78VITJMiTw1', username: 'Fake user #Tw1' },
|
{
|
||||||
|
id: 'ZShmW1xkW7WWl9AkB78VITJMiTw1',
|
||||||
|
username: 'Fake user #Tw1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -855,13 +1000,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Clipboard-header.json',
|
'https://resources.gdevelop-app.com/extensions/Clipboard-header.json',
|
||||||
tags: 'clipboard,pasteboard,paste,copy,write',
|
tags: 'clipboard,pasteboard,paste,copy,write',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/clipboard-text-multiple-outline.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/clipboard-text-multiple-outline.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92', username: 'Bouh' },
|
{
|
||||||
{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' },
|
id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92',
|
||||||
|
username: 'Bouh',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -881,14 +1035,27 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/ColorConversion-header.json',
|
'https://resources.gdevelop-app.com/extensions/ColorConversion-header.json',
|
||||||
tags: 'color,conversion,hexadecimal,rgb,hsl,hsv,hsb',
|
tags: 'color,conversion,hexadecimal,rgb,hsl,hsv,hsb',
|
||||||
|
category: 'Advanced',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/invert-colors.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/invert-colors.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 9,
|
eventsFunctionsCount: 9,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
{ id: 'AlZ3D1xkH0QDao7T37VZZUeYNpn1', username: 'Fake user #pn1' },
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' },
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'AlZ3D1xkH0QDao7T37VZZUeYNpn1',
|
||||||
|
username: 'Fake user #pn1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -903,11 +1070,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/Compressor-header.json',
|
'https://resources.gdevelop-app.com/extensions/Compressor-header.json',
|
||||||
tags: 'string,compression,zip',
|
tags: 'string,compression,zip',
|
||||||
|
category: 'Advanced',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/folder-zip-outline.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/folder-zip-outline.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -923,12 +1097,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CopyCameraSettings-header.json',
|
'https://resources.gdevelop-app.com/extensions/CopyCameraSettings-header.json',
|
||||||
tags: 'camera,clone,zoom,position,layer,angle,copy',
|
tags: 'camera,clone,zoom,position,layer,angle,copy',
|
||||||
|
category: 'Camera',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/layers-triple-outline.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/layers-triple-outline.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 1,
|
eventsFunctionsCount: 1,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -945,12 +1124,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CreateMultipleCopiesOfObject-header.json',
|
'https://resources.gdevelop-app.com/extensions/CreateMultipleCopiesOfObject-header.json',
|
||||||
tags: 'create,multiple,object,grid,row,column',
|
tags: 'create,multiple,object,grid,row,column',
|
||||||
|
category: 'Visual effect',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/grid.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/grid.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 1,
|
eventsFunctionsCount: 1,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -967,12 +1151,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CurrentGameVersion-header.json',
|
'https://resources.gdevelop-app.com/extensions/CurrentGameVersion-header.json',
|
||||||
tags: 'version',
|
tags: 'version',
|
||||||
|
category: 'Advanced',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/numeric.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/numeric.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 1,
|
eventsFunctionsCount: 1,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'ZShmW1xkW7WWl9AkB78VITJMiTw1', username: 'Fake user #Tw1' },
|
{
|
||||||
|
id: 'ZShmW1xkW7WWl9AkB78VITJMiTw1',
|
||||||
|
username: 'Fake user #Tw1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -988,11 +1177,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CursorMovement-header.json',
|
'https://resources.gdevelop-app.com/extensions/CursorMovement-header.json',
|
||||||
tags: 'mouse,pointer,cursor',
|
tags: 'mouse,pointer,cursor',
|
||||||
|
category: 'Input',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_mouse_pc.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_mouse_pc.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'community',
|
tier: 'community',
|
||||||
@@ -1010,13 +1206,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/CursorType-header.json',
|
'https://resources.gdevelop-app.com/extensions/CursorType-header.json',
|
||||||
tags: 'cursor,javascript,desktop',
|
tags: 'cursor,javascript,desktop',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/cursor-default-outline.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/cursor-default-outline.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 2,
|
eventsFunctionsCount: 2,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' },
|
{
|
||||||
{ id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92', username: 'Bouh' },
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '2OwwM8ToR9dx9RJ2sAKTcrLmCB92',
|
||||||
|
username: 'Bouh',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1032,12 +1237,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DepthEffect-header.json',
|
'https://resources.gdevelop-app.com/extensions/DepthEffect-header.json',
|
||||||
tags: 'depth,effect,scale,y,text,sprite',
|
tags: 'depth,effect,scale,y,text,sprite',
|
||||||
|
category: 'Visual effect',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Virtual Reality/Virtual Reality_vr_computer_3d_cube_screen_tv.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Virtual Reality/Virtual Reality_vr_computer_3d_cube_screen_tv.svg',
|
||||||
eventsBasedBehaviorsCount: 2,
|
eventsBasedBehaviorsCount: 2,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1053,11 +1263,18 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DiscordRichPresence-header.json',
|
'https://resources.gdevelop-app.com/extensions/DiscordRichPresence-header.json',
|
||||||
tags: 'discord,rich,presence,integration,status',
|
tags: 'discord,rich,presence,integration,status',
|
||||||
|
category: 'Third-party',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/discord.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/discord.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [{ id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1', username: 'arthuro555' }],
|
authors: [
|
||||||
|
{
|
||||||
|
id: 'ZgrsWuRTAkXgeuPV9bo0zuEcA2w1',
|
||||||
|
username: 'arthuro555',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
@@ -1072,12 +1289,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DoubleClick-header.json',
|
'https://resources.gdevelop-app.com/extensions/DoubleClick-header.json',
|
||||||
tags: 'double-click,double-tap',
|
tags: 'double-click,double-tap',
|
||||||
|
category: 'Input',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_mouse_wireless_pc.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_mouse_wireless_pc.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 3,
|
eventsFunctionsCount: 3,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: '8Ih1aa8f5gWUp4UB2BdhQ2iXWxJ3', username: 'Fake user #xJ3' },
|
{
|
||||||
|
id: '8Ih1aa8f5gWUp4UB2BdhQ2iXWxJ3',
|
||||||
|
username: 'Fake user #xJ3',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1096,13 +1318,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DragCameraWithPointer-header.json',
|
'https://resources.gdevelop-app.com/extensions/DragCameraWithPointer-header.json',
|
||||||
tags: 'pointer,drag,camera,scroll,gestures',
|
tags: 'pointer,drag,camera,scroll,gestures',
|
||||||
|
category: 'Camera',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/drag-variant.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/drag-variant.svg',
|
||||||
eventsBasedBehaviorsCount: 0,
|
eventsBasedBehaviorsCount: 0,
|
||||||
eventsFunctionsCount: 1,
|
eventsFunctionsCount: 1,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'GfzRsieyUFVnsRR8OZThsPR29oq2', username: 'Fake user #oq2' },
|
{
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
id: 'GfzRsieyUFVnsRR8OZThsPR29oq2',
|
||||||
|
username: 'Fake user #oq2',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1118,12 +1349,17 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DraggablePhysics-header.json',
|
'https://resources.gdevelop-app.com/extensions/DraggablePhysics-header.json',
|
||||||
tags: 'draggable,mouse,touch,physics,object,joint,fling',
|
tags: 'draggable,mouse,touch,physics,object,joint,fling',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Virtual Reality/Virtual Reality_hand_vr_ar_360.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Virtual Reality/Virtual Reality_hand_vr_ar_360.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1143,13 +1379,22 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DraggableSliderControl-header.json',
|
'https://resources.gdevelop-app.com/extensions/DraggableSliderControl-header.json',
|
||||||
tags: 'draggable,slider,shape painter,ui,widget',
|
tags: 'draggable,slider,shape painter,ui,widget',
|
||||||
|
category: 'User interface',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_sliders_options.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_sliders_options.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [
|
authors: [
|
||||||
{ id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2', username: 'D8H' },
|
{
|
||||||
{ id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1', username: 'Fake user #Cg1' },
|
id: 'IWykYNRvhCZBN3vEgKEbBPOR3Oc2',
|
||||||
|
username: 'D8H',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gqDaZjCfevOOxBYkK6zlhtZnXCg1',
|
||||||
|
username: 'Fake user #Cg1',
|
||||||
|
description: '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1165,11 +1410,14 @@ export const fakeExtensionsRegistry: ExtensionsRegistry = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/DrawPathfinding-header.json',
|
'https://resources.gdevelop-app.com/extensions/DrawPathfinding-header.json',
|
||||||
tags: 'pathfinding,debug,shape painter,draw',
|
tags: 'pathfinding,debug,shape painter,draw',
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl:
|
previewIconUrl:
|
||||||
'https://resources.gdevelop-app.com/assets/Icons/resistor-nodes.svg',
|
'https://resources.gdevelop-app.com/assets/Icons/resistor-nodes.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
authors: [{ id: 'this-is-a-fake-id', username: 'Fake author' }],
|
authors: [
|
||||||
|
{ id: 'this-is-a-fake-id', username: 'Fake author', description: '' },
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
@@ -796,6 +796,7 @@ export const fakeAssetShortHeader1: AssetShortHeader = {
|
|||||||
|
|
||||||
export const fireBulletExtensionShortHeader: ExtensionShortHeader = {
|
export const fireBulletExtensionShortHeader: ExtensionShortHeader = {
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
|
authorIds: [],
|
||||||
shortDescription:
|
shortDescription:
|
||||||
'Allow the object to fire bullets, with customizable speed, angle and fire rate.',
|
'Allow the object to fire bullets, with customizable speed, angle and fire rate.',
|
||||||
extensionNamespace: '',
|
extensionNamespace: '',
|
||||||
@@ -806,6 +807,7 @@ export const fireBulletExtensionShortHeader: ExtensionShortHeader = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/FireBullet-header.json',
|
'https://resources.gdevelop-app.com/extensions/FireBullet-header.json',
|
||||||
tags: ['fire', 'bullets', 'spawn', 'firerate'],
|
tags: ['fire', 'bullets', 'spawn', 'firerate'],
|
||||||
|
category: 'Movement',
|
||||||
previewIconUrl: 'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
previewIconUrl: 'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
@@ -837,6 +839,7 @@ export const alreadyInstalledCommunityExtensionShortHeader: ExtensionShortHeader
|
|||||||
|
|
||||||
export const flashExtensionShortHeader: ExtensionShortHeader = {
|
export const flashExtensionShortHeader: ExtensionShortHeader = {
|
||||||
tier: 'reviewed',
|
tier: 'reviewed',
|
||||||
|
authorIds: [],
|
||||||
shortDescription:
|
shortDescription:
|
||||||
'Make the object flash (blink) for a period of time, so that it is alternately visible and invisible.\nTrigger the effect by using the Flash action.',
|
'Make the object flash (blink) for a period of time, so that it is alternately visible and invisible.\nTrigger the effect by using the Flash action.',
|
||||||
extensionNamespace: '',
|
extensionNamespace: '',
|
||||||
@@ -846,6 +849,7 @@ export const flashExtensionShortHeader: ExtensionShortHeader = {
|
|||||||
url: 'Extensions/Flash.json',
|
url: 'Extensions/Flash.json',
|
||||||
headerUrl: 'Extensions/Flash-header.json',
|
headerUrl: 'Extensions/Flash-header.json',
|
||||||
tags: ['flash', 'blink', 'visible', 'invisible', 'hit', 'damage'],
|
tags: ['flash', 'blink', 'visible', 'invisible', 'hit', 'damage'],
|
||||||
|
category: 'Visual effect',
|
||||||
previewIconUrl: 'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
previewIconUrl: 'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
@@ -853,6 +857,7 @@ export const flashExtensionShortHeader: ExtensionShortHeader = {
|
|||||||
|
|
||||||
export const communityTierExtensionShortHeader: ExtensionShortHeader = {
|
export const communityTierExtensionShortHeader: ExtensionShortHeader = {
|
||||||
tier: 'community',
|
tier: 'community',
|
||||||
|
authorIds: [],
|
||||||
shortDescription:
|
shortDescription:
|
||||||
'This is an example of an extension that is a community extension (not reviewed).',
|
'This is an example of an extension that is a community extension (not reviewed).',
|
||||||
extensionNamespace: '',
|
extensionNamespace: '',
|
||||||
@@ -864,6 +869,7 @@ export const communityTierExtensionShortHeader: ExtensionShortHeader = {
|
|||||||
headerUrl:
|
headerUrl:
|
||||||
'https://resources.gdevelop-app.com/extensions/FakeCommunityExtension-header.json',
|
'https://resources.gdevelop-app.com/extensions/FakeCommunityExtension-header.json',
|
||||||
tags: ['fire', 'bullets', 'spawn', 'firerate'],
|
tags: ['fire', 'bullets', 'spawn', 'firerate'],
|
||||||
|
category: '',
|
||||||
previewIconUrl: 'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
previewIconUrl: 'https://resources.gdevelop-app.com/assets/Icons/repeat.svg',
|
||||||
eventsBasedBehaviorsCount: 1,
|
eventsBasedBehaviorsCount: 1,
|
||||||
eventsFunctionsCount: 0,
|
eventsFunctionsCount: 0,
|
||||||
|
Reference in New Issue
Block a user