mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-19 22:23:35 -04:00
Clean markdown files and fix typos (#5248)
Only show in develop changelog
This commit is contained in:
@@ -8,12 +8,15 @@ assignees: ''
|
||||
---
|
||||
|
||||
## Describe the bug
|
||||
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
Please double check that the bug is not already reported in the issues list.
|
||||
|
||||
## To Reproduce
|
||||
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
@@ -23,6 +26,7 @@ Steps to reproduce the behavior:
|
||||
* If applicable, add screenshots to help explain your problem.
|
||||
|
||||
## Other details
|
||||
|
||||
* Include any OS/browser version/smartphone that you're using
|
||||
* Which version of GDevelop are you using? The desktop app or the web-app?
|
||||
* Add any other context about the problem here.
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
This is the directory where native or WebAssembly binaries of the C++ code of GDCore and GDJS are produced.
|
||||
|
||||
See GDevelop.js README for the instructions to compile after a change in the C++ source code.
|
||||
See GDevelop.js README for the instructions to compile after a change in the C++ source code.
|
||||
|
||||
@@ -99,7 +99,7 @@ Everything in GDevelop.js is meant to create a "bridge" allowing us to run and u
|
||||
|
||||
### I want all the gory details about GDevelop.js 🧐
|
||||
|
||||
All the required C++ files are imported into this huge list: https://github.com/4ian/GDevelop/blob/master/GDevelop.js/Bindings/Wrapper.cpp#L1-L79. C++ compilation is done with a "build system" called CMake, which is using [this file](https://github.com/4ian/GDevelop/blob/master/GDevelop.js/CMakeLists.txt#L82-L101) to see what to compile.
|
||||
All the required C++ files are imported into this huge list: <https://github.com/4ian/GDevelop/blob/master/GDevelop.js/Bindings/Wrapper.cpp#L1-L79>. C++ compilation is done with a "build system" called CMake, which is using [this file](https://github.com/4ian/GDevelop/blob/master/GDevelop.js/CMakeLists.txt#L82-L101) to see what to compile.
|
||||
|
||||
> In an ideal world, there would be something to do this automatically, so the GDevelop.js folder would not even exist 😉
|
||||
> If you're interested and want to know more about GDevelop.js bridging between C++ and JavaScript, look at [this talk from GDevelop original author](https://www.youtube.com/watch?v=6La7jSCnYyk).
|
||||
|
||||
+26
-24
@@ -12,31 +12,32 @@ In the example below, we are defining 4 text styles.
|
||||
```js
|
||||
let text = new MultiStyleText("Let's make some <ml>multiline</ml>\nand <ms>multistyle</ms> text for\n<pixi>Pixi.js!</pixi>",
|
||||
{
|
||||
"default": {
|
||||
fontFamily: "Arial",
|
||||
fontSize: "24px",
|
||||
fill: "#cccccc",
|
||||
align: "center"
|
||||
},
|
||||
"ml": {
|
||||
fontStyle: "italic",
|
||||
fill: "#ff8888"
|
||||
},
|
||||
"ms": {
|
||||
fontStyle: "italic",
|
||||
fill: "#4488ff"
|
||||
},
|
||||
"pixi": {
|
||||
fontSize: "64px",
|
||||
fill: "#efefef"
|
||||
}
|
||||
"default": {
|
||||
fontFamily: "Arial",
|
||||
fontSize: "24px",
|
||||
fill: "#cccccc",
|
||||
align: "center"
|
||||
},
|
||||
"ml": {
|
||||
fontStyle: "italic",
|
||||
fill: "#ff8888"
|
||||
},
|
||||
"ms": {
|
||||
fontStyle: "italic",
|
||||
fill: "#4488ff"
|
||||
},
|
||||
"pixi": {
|
||||
fontSize: "64px",
|
||||
fill: "#efefef"
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Build instructions
|
||||
|
||||
```
|
||||
$ yarn install
|
||||
$ yarn build
|
||||
```bash
|
||||
yarn install
|
||||
yarn build
|
||||
```
|
||||
|
||||
## Usage
|
||||
@@ -46,6 +47,7 @@ $ yarn build
|
||||
Creates a new `MultiStyleText` with the given text and styles.
|
||||
|
||||
#### `textStyles`
|
||||
|
||||
Type: `{ [key: string]: ExtendedTextStyle }`
|
||||
|
||||
Each key of this dictionary should match with a tag in the text. Use the key `default` for the default style.
|
||||
@@ -57,10 +59,10 @@ The `align`, `wordWrap`, `wordWrapWidth`, and `breakWord` properties are ignored
|
||||
If text is rendered without any value assigned to a given parameter, Pixi's defaults are used.
|
||||
|
||||
## Demo
|
||||
```
|
||||
$ yarn demo
|
||||
```
|
||||
|
||||
```bash
|
||||
yarn demo
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
# bondage.js [](https://travis-ci.org/jhayley/bondage.js)
|
||||
|
||||
[Yarn](https://github.com/InfiniteAmmoInc/Yarn) parser for Javascript, in the same vein as [YarnSpinner](https://github.com/thesecretlab/YarnSpinner).
|
||||
|
||||
# Usage
|
||||
|
||||
#### As a Web Tool
|
||||
|
||||
To run through your yarn files in your browser, go to http://hayley.zone/bondage.js, paste your yarn data in the field, then hit "compile".
|
||||
To run through your yarn files in your browser, go to <http://hayley.zone/bondage.js>, paste your yarn data in the field, then hit "compile".
|
||||
|
||||
#### As a Command Line Tool
|
||||
Installation: `npm install -g bondage`
|
||||
|
||||
@@ -25,6 +25,7 @@ Which means that the character could climb it during 1 frame and then stop.
|
||||
[](./diagrams/SlopeFollowingClimbFactorMean.svgz)
|
||||
|
||||
For further details on the implementation, please take a look at the comments in:
|
||||
|
||||
- the function `gdjs.PlatformerObjectRuntimeBehavior._moveX`
|
||||
- the function `gdjs.PlatformerObjectRuntimeBehavior.OnFloor.beforeMovingY`
|
||||
|
||||
@@ -53,6 +54,7 @@ To detect such cases, 2 flags are used:
|
||||
[](./diagrams/SlopeFollowingContext.svgz)
|
||||
|
||||
For further details on the implementation, please take a look at the comments in:
|
||||
|
||||
- the function `gdjs.PlatformerObjectRuntimeBehavior._findHighestFloorAndMoveOnTop`
|
||||
- the class `gdjs.PlatformerObjectRuntimeBehavior.FollowConstraintContext`
|
||||
|
||||
@@ -63,6 +65,7 @@ For further details on the implementation, please take a look at the comments in
|
||||
The engine uses the previous speeds and positions to evaluate the new ones (with Verlet integrations). This is fast for sequential access and it's a good fit for what the engine does.
|
||||
|
||||
The model doesn't follow the laws of physics and this is fine because more realism doesn't mean more fun. Internally, it uses 2 independent speeds:
|
||||
|
||||
- the current jumping speed `currentJumpSpeed`
|
||||
- the current falling speed `currentFallSpeed`
|
||||
|
||||
@@ -92,11 +95,13 @@ This example of trajectory shows the 4 functions. It has an affine part in the m
|
||||

|
||||
|
||||
The piece-wise function has 3 borders:
|
||||
|
||||
- at the end of the jump sustaining (jumpSustainTime)
|
||||
- when the maximum falling speed is reached (maxFallingTime)
|
||||
- when the jump speed reach 0 (jumpEndTime)
|
||||
|
||||
Depending on the when the maximum falling speed is reached, there can be 3 piece-wise functions:
|
||||
|
||||
- after the jump end
|
||||
- sustain case
|
||||
- common case
|
||||
@@ -306,10 +311,3 @@ This is the code used to plot the first graphic of the [Polynomial piece-wise fu
|
||||
]), 0, 0.8, ymin=0, color='cyan')
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
This library sources are located in [SharedLibs/TileMapHelper/](../../../SharedLibs/TileMapHelper/).
|
||||
This library sources are located in [SharedLibs/TileMapHelper/](../../../SharedLibs/TileMapHelper/).
|
||||
|
||||
@@ -1 +1 @@
|
||||
An example of a basic platformer (Mario-like) game made with GDevelop.
|
||||
An example of a basic platformer (Mario-like) game made with GDevelop.
|
||||
|
||||
@@ -1 +1 @@
|
||||
An example of a basic platformer (Mario-like) game made with GDevelop.
|
||||
An example of a basic platformer (Mario-like) game made with GDevelop.
|
||||
|
||||
+10
-10
@@ -28,10 +28,10 @@ This is the port of GDevelop core classes to WebAssembly+JavaScript. This allows
|
||||
|
||||
- Launch the build from GDevelop.js folder:
|
||||
|
||||
```shell
|
||||
cd GDevelop.js
|
||||
npm install
|
||||
npm run build
|
||||
```bash
|
||||
cd GDevelop.js
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
> ⚠️ If the npm install fails, relaunch it in a different terminal using a recent Node.js and npm version (to avoid using the old npm version from Emscripten).
|
||||
@@ -42,18 +42,18 @@ This is the port of GDevelop core classes to WebAssembly+JavaScript. This allows
|
||||
|
||||
- You can then launch GDevelop 5 that will use your build of GDevelop.js:
|
||||
|
||||
```shell
|
||||
cd ..
|
||||
cd newIDE/app
|
||||
npm install
|
||||
npm start
|
||||
```bash
|
||||
cd ..
|
||||
cd newIDE/app
|
||||
npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
More information in [GDevelop 5 readme](https://github.com/4ian/GD/blob/master/newIDE/README.md).
|
||||
|
||||
### Tests
|
||||
|
||||
```
|
||||
```bash
|
||||
npm test
|
||||
```
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ Status of the tests and builds: [.
|
||||
- Suggest your game to be [added to the showcase here](https://docs.google.com/forms/d/e/1FAIpQLSfjiOnkbODuPifSGuzxYY61vB5kyMWdTZSSqkJsv3H6ePRTQA/viewform).
|
||||
|
||||

|
||||
[](https://gdevelop.io/games)
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
This library sources is used by the [tile map extension](../../Extensions/TileMap/).
|
||||
|
||||
The `npm run build` command copy the bundled library at the right place for the extension to use it.
|
||||
The `npm run build` command copy the bundled library at the right place for the extension to use it.
|
||||
|
||||
+39
-38
@@ -60,7 +60,7 @@ Read about [`gdjs.RuntimeScene`](https://docs.gdevelop.io/GDJS%20Runtime%20Docum
|
||||
|
||||
##### How to create an asynchronous function
|
||||
|
||||
You can make an asynchronous action by making your function return an instance of an AsyncTask (don't forget to also declare your function as async!). You can make an `AsyncTask` yourself by extending the `gdjs.AsyncTask` abstract base class, or, if you are using JavaScript async functions/promises, by instanciating a new `gdjs.PromiseTask` with your promise as argument.
|
||||
You can make an asynchronous action by making your function return an instance of an AsyncTask (don't forget to also declare your function as async!). You can make an `AsyncTask` yourself by extending the `gdjs.AsyncTask` abstract base class, or, if you are using JavaScript async functions/promises, by instantiating a new `gdjs.PromiseTask` with your promise as argument.
|
||||
|
||||
#### How to create a behavior by extending `gdjs.RuntimeBehavior`
|
||||
|
||||
@@ -103,10 +103,10 @@ Use [`addAction`](https://docs.gdevelop.io/GDCore%20Documentation/classgd_1_1_pl
|
||||
|
||||
- Chain calls to [`addParameter`](https://docs.gdevelop.io/GDCore%20Documentation/classgd_1_1_instruction_metadata.html#a95486188a843f9ac8cdb1b0700c6c7e5) to declare the parameters of your action/condition/expression.
|
||||
- Call `getCodeExtraInformation()` and then functions like [`setFunctionName` and `setIncludeFile`](https://docs.gdevelop.io/GDCore%20Documentation/classgd_1_1_instruction_metadata_1_1_extra_information.html) to declare the JavaScript function to be called and the file to be included.
|
||||
- If your function is asynchronous, call `setAsyncFunctionName` instead to tell GDevelop to wait for the returned `Task` to resolve before executing subsequent actions and subevents.
|
||||
- If you want to be able to toggle the awaiting on and off, make one implementation of the function that returns a `Task` and one that doesn't, and use both `setFunctionName` and `setAsyncFunctionName` respectively to declare both to GDevelop, making the action optionally async.
|
||||
- If you just want to return a promise to be awaited, you do not need to create your own task. Simply return `new gd.PromiseTask(yourPromise)`.
|
||||
- Note that, as of now, *only actions can be asynchronous*. Giving other functions an async function name will not have any effect.
|
||||
- If your function is asynchronous, call `setAsyncFunctionName` instead to tell GDevelop to wait for the returned `Task` to resolve before executing subsequent actions and subevents.
|
||||
- If you want to be able to toggle the awaiting on and off, make one implementation of the function that returns a `Task` and one that doesn't, and use both `setFunctionName` and `setAsyncFunctionName` respectively to declare both to GDevelop, making the action optionally async.
|
||||
- If you just want to return a promise to be awaited, you do not need to create your own task. Simply return `new gd.PromiseTask(yourPromise)`.
|
||||
- Note that, as of now, _only actions can be asynchronous_. Giving other functions an async function name will not have any effect.
|
||||
|
||||
> You can call these functions on the `extension` object, or on the objects returned by `extension.addObject` (for objects) or `extension.addBehavior` (for behaviors). See below.
|
||||
|
||||
@@ -144,10 +144,10 @@ To declare one, just use `registerProperty`:
|
||||
```js
|
||||
// From ExampleJsExtension/JsExtension.js:
|
||||
extension
|
||||
.registerProperty("DummyPropertyString")
|
||||
.setLabel(_("Dummy Property Name"))
|
||||
.setDescription(_("Type in anything :)"))
|
||||
.setType("string");
|
||||
.registerProperty("DummyPropertyString")
|
||||
.setLabel(_("Dummy Property Name"))
|
||||
.setDescription(_("Type in anything :)"))
|
||||
.setType("string");
|
||||
```
|
||||
|
||||
Once declared, you can access the property from JavaScript in the game engine using `getExtensionProperty` method of `gdjs.RuntimeGame`. Pass the extension name and the property name. This would get the AdMobAppId property of the AdMob extension for example:
|
||||
@@ -166,26 +166,26 @@ You can declare a dependency on an npm package or cordova plugin with `addDepend
|
||||
```js
|
||||
// From ExampleJsExtension/JsExtension.js:
|
||||
extension
|
||||
.addDependency()
|
||||
.setName("Thirteen Checker")
|
||||
.setDependencyType("npm")
|
||||
.setExportName("is-thirteen")
|
||||
.setVersion("2.0.0");
|
||||
.addDependency()
|
||||
.setName("Thirteen Checker")
|
||||
.setDependencyType("npm")
|
||||
.setExportName("is-thirteen")
|
||||
.setVersion("2.0.0");
|
||||
```
|
||||
|
||||
On cordova you can add plugin variables as extra properties:
|
||||
|
||||
```js
|
||||
extension
|
||||
.addDependency()
|
||||
.setName("Some Cordova Extension")
|
||||
.setDependencyType("cordova")
|
||||
.setExportName("cordova-some-plugin")
|
||||
.setVersion("1.0.0")
|
||||
.setExtraSetting(
|
||||
"VARIABLE_NAME",
|
||||
new gd.PropertyDescriptor().setValue("42")
|
||||
);
|
||||
.addDependency()
|
||||
.setName("Some Cordova Extension")
|
||||
.setDependencyType("cordova")
|
||||
.setExportName("cordova-some-plugin")
|
||||
.setVersion("1.0.0")
|
||||
.setExtraSetting(
|
||||
"VARIABLE_NAME",
|
||||
new gd.PropertyDescriptor().setValue("42")
|
||||
);
|
||||
```
|
||||
|
||||
You can also use an extension property to determine the value of the plugin variable:
|
||||
@@ -193,23 +193,23 @@ You can also use an extension property to determine the value of the plugin vari
|
||||
```js
|
||||
// From AdMob/JsExtension.js:
|
||||
extension
|
||||
.registerProperty("AdMobAppId") // Remember Property Name
|
||||
.setLabel("AdMob App ID")
|
||||
.setDescription("ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY")
|
||||
.setType("string");
|
||||
.registerProperty("AdMobAppId") // Remember Property Name
|
||||
.setLabel("AdMob App ID")
|
||||
.setDescription("ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY")
|
||||
.setType("string");
|
||||
|
||||
extension
|
||||
.addDependency()
|
||||
.setName("AdMob Cordova Extension")
|
||||
.setDependencyType("cordova")
|
||||
.setExportName("cordova-plugin-admob-free")
|
||||
.setVersion("~0.21.0")
|
||||
.setExtraSetting(
|
||||
"ADMOB_APP_ID",
|
||||
new gd.PropertyDescriptor()
|
||||
.setType("ExtensionProperty") // Tell the exporter this is an extension property...
|
||||
.setValue("AdMobAppId") // ... and what property it is (name of the property).
|
||||
);
|
||||
.addDependency()
|
||||
.setName("AdMob Cordova Extension")
|
||||
.setDependencyType("cordova")
|
||||
.setExportName("cordova-plugin-admob-free")
|
||||
.setVersion("~0.21.0")
|
||||
.setExtraSetting(
|
||||
"ADMOB_APP_ID",
|
||||
new gd.PropertyDescriptor()
|
||||
.setType("ExtensionProperty") // Tell the exporter this is an extension property...
|
||||
.setValue("AdMobAppId") // ... and what property it is (name of the property).
|
||||
);
|
||||
```
|
||||
|
||||
#### Declare an object editor
|
||||
@@ -257,6 +257,7 @@ If you want to start a new extension:
|
||||
- Remove all the actions/conditions/expressions declarations and tests, run `node import-GDJS-Runtime.js` and reload GDevelop to verify that your extension is loaded.
|
||||
- Create a file called for example _yourextensionnametools.js_ in the same directory.
|
||||
- Add back the declarations in your extension. Use `setIncludeFile` when declaring your actions/conditions/expressions and set the name of the ts file that you've created **but with a js extension**, prefixed by the path from the root folder. For example:
|
||||
|
||||
```js
|
||||
.setIncludeFile("Extensions/FacebookInstantGames/facebookinstantgamestools.ts")
|
||||
```
|
||||
|
||||
+12
-9
@@ -5,34 +5,37 @@ Themes are a consistent set of colors and other styles that unify the look and f
|
||||
## How themes are handled
|
||||
|
||||
Theme styles are held in a `theme.json`, which is used to generate:
|
||||
- A `.css` file, containing the styles as CSS Custom Properties. These properties are set by applying the theme class
|
||||
to specific sections of the app. To see where the properties are used, see the stylesheets in the `Global` folder.
|
||||
|
||||
- A `.css` file, containing the styles as CSS Custom Properties. These properties are set by applying the theme class
|
||||
to specific sections of the app. To see where the properties are used, see the stylesheets in the `Global` folder.
|
||||
- A `.json` file, containing the styles as a flat object, where each style is a field. This is imported and used by the Material UI library
|
||||
as well as custom components
|
||||
|
||||
They are created by leveraging (Style Dictionary)[https://amzn.github.io/style-dictionary] to compile them from `theme.json` using
|
||||
the `build-theme-resources` script, in the scripts folder. There is also an npm script to run it (`build-theme-resources`)
|
||||
They are created by leveraging [Style Dictionary](https://amzn.github.io/style-dictionary) to compile them from `theme.json` using
|
||||
the `build-theme-resources` script in the scripts folder. There is also an npm script to run it (`build-theme-resources`).
|
||||
|
||||
## Creating new themes
|
||||
|
||||
Themes are stored in [this Theme Folder](./app/src/UI/Theme). Each theme has its own subfolder containing
|
||||
|
||||
- A javascript file (`index.js`) to generate the object describing the theme that is used by the editor (class names, values to apply to Material-UI) and that also imports the css file.
|
||||
- The `theme.json` file which stores the theme details (colors, widths, etc.)
|
||||
|
||||
|
||||
To create the necessary files, run the following command:
|
||||
|
||||
```bash
|
||||
npm run create-new-theme "<Theme Name>"
|
||||
```
|
||||
|
||||
This will create the files `index.js`, `theme.json` and the folder to contain them, with the theme name filled in and some default values.
|
||||
This will create the files `index.js`, `theme.json` and the folder to contain them, with the theme name filled in and some default values.
|
||||
It will also update files in the root directory, as well as recompile all themes (including the new one).
|
||||
|
||||
## Editing a theme
|
||||
|
||||
To edit a theme, make any changes in the `theme.json` file, and then run
|
||||
To edit a theme, make any changes in the `theme.json` file, and then run
|
||||
|
||||
```bash
|
||||
npm run build-theme-resources
|
||||
```
|
||||
to compile the styles into the `.css` and `.json` files. This command will need to be run any time changes are made.
|
||||
```
|
||||
|
||||
to compile the styles into the `.css` and `.json` files. This command will need to be run any time changes are made.
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ npm run format # or yarn format
|
||||
|
||||
It's pretty easy to create new themes. Check the [README about themes](./README-themes.md)
|
||||
|
||||
### Development of the game engine or extensions.
|
||||
### Development of the game engine or extensions
|
||||
|
||||
Make sure to have the standalone app running with Electron.
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ GDevelop relies on some dependencies that can have special requirements.
|
||||
|
||||
## Create React App
|
||||
|
||||
We need `"react-error-overlay": "6.0.9"` because of https://github.com/facebook/create-react-app/issues/11773.
|
||||
We need `"react-error-overlay": "6.0.9"` because of <https://github.com/facebook/create-react-app/issues/11773>.
|
||||
Can be removed if upgrading create-react-app to v5.
|
||||
|
||||
## LinguiJS
|
||||
|
||||
Vendored
+1
-1
@@ -2,4 +2,4 @@ This folder contains third parties editors bundled with GDevelop.
|
||||
They are usually imported by `import-XXX-editor.js` scripts (See app/scripts folder).
|
||||
|
||||
For ES Modules to work, all files must be lower cased. Protocol gdide:// must be used
|
||||
so that Electron can properly serve the ES modules.
|
||||
so that Electron can properly serve the ES modules.
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
This folder contains sources to embed the Piskel editor (https://www.piskelapp.com/) so that it can
|
||||
be used directly from GDevelop to edit images.
|
||||
|
||||
GD uses an updated version of piskel from https://github.com/blurymind/piskel/tree/piskel-plus
|
||||
GD uses an updated version of piskel from <https://github.com/blurymind/piskel/tree/piskel-plus>
|
||||
It contains a number of advanced color manipulation features and improvements to aid artists.
|
||||
commit number: a300d17eb88d2b9d1fa2bbe3a810ad1bb76f1f81
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
This directory contains the extension loader for Node.js/Electron (`LocalJsExtensionsLoader`) or the Browser (`BrowserJsExtensionsLoader`).
|
||||
|
||||
`LocalJsExtensionsLoader` is loading extensions from GDJS Runtime folder. Be sure to launch `node import-GDJS-Runtime.js` from `newIDE/app/scripts` if you made any changes in an extension.
|
||||
`LocalJsExtensionsLoader` is loading extensions from GDJS Runtime folder. Be sure to launch `node import-GDJS-Runtime.js` from `newIDE/app/scripts` if you made any changes in an extension.
|
||||
|
||||
@@ -2,4 +2,4 @@ This theme is an implementation of the Rosé Pine colorscheme. (https://rosepine
|
||||
|
||||
The theme follows the colors found [here](https://rosepinetheme.com/palette) and usage specification found [here](https://rosepinetheme.com/docs/usage)
|
||||
|
||||
The theme is licensed under MIT, although the actual source code is not used, the color specification is used in this theme. (See https://github.com/rose-pine/rose-pine-theme/blob/main/license)
|
||||
The theme is licensed under MIT, although the actual source code is not used, the color specification is used in this theme. (See <https://github.com/rose-pine/rose-pine-theme/blob/main/license>)
|
||||
|
||||
@@ -1 +1 @@
|
||||
This locale "en" is the source language. Use `ide-messages.po` to update source strings to translate in Crowdin.
|
||||
This locale "en" is the source language. Use `ide-messages.po` to update source strings to translate in Crowdin.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Nightly Builds and continuous deployment
|
||||
|
||||
GDevelop is using CircleCI (a continous deployment/integration service) and AppVeyor to automatically build new versions for **every commit on `master`** branch.
|
||||
GDevelop is using CircleCI (a continuous deployment/integration service) and AppVeyor to automatically build new versions for **every commit on `master`** branch.
|
||||
|
||||
You can download these here - **replace XX by the current version number**:
|
||||
|
||||
@@ -24,7 +24,7 @@ You can download these here - **replace XX by the current version number**:
|
||||
## How do I download a "Nightly Build" for a specific commit?
|
||||
|
||||
1. Verify that the CircleCI build was done for the commit. Click on the green check or the yellow circle on GitHub next to the commit or checks, and verify that `ci/circleci: build — Your tests passed on CircleCI!` is written - otherwise the build is still being done.
|
||||
2. Find the hash of the commit. Usually, click on a commit title (in a Pull Requests or in the list of commits of a branch) and read the _hash_ in the URL. For example, for https://github.com/4ian/GDevelop/commit/5c648e3f2b8c444bd99221cea56b92c00cdddddd, the hash is `5c648e3f2b8c444bd99221cea56b92c00cdddddd`.
|
||||
2. Find the hash of the commit. Usually, click on a commit title (in a Pull Requests or in the list of commits of a branch) and read the _hash_ in the URL. For example, for <https://github.com/4ian/GDevelop/commit/5c648e3f2b8c444bd99221cea56b92c00cdddddd>, the hash is `5c648e3f2b8c444bd99221cea56b92c00cdddddd`.
|
||||
3. Download the version built for it (replace XX, THE_BRANCH and THE_COMMIT_HASH):
|
||||
|
||||
- Windows: `https://gdevelop-releases.s3.amazonaws.com/THE_BRANCH/commit/THE_COMMIT_HASH/GDevelop 5 Setup 5.1.XXX.exe`
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
## The need for a concept of "properties"
|
||||
|
||||
A lot of elements in GDevelop can have fields which can be edited by the user. For example:
|
||||
|
||||
* a behavior has properties that are, for most behaviors, strings, numbers and booleans.
|
||||
* an object also has properties that are shown in the editor. They are often strings (the text to display in a text object), numbers (the number of particles), booleans (a checkbox to set if a text is displayed in bold or not) and also sometimes can be a resource (for example, the image to be displayed by a tiled sprite object or the font to be used by a text object).
|
||||
* an instance on a scene also has a bunch of properties: its X and Y coordinates, its angle, etc...
|
||||
@@ -72,6 +73,7 @@ That's why object and behaviors can have "properties". A property is defined by
|
||||
return properties;
|
||||
}
|
||||
```
|
||||
|
||||
* **Behaviors** can also have properties (check example of existing behaviors in `JsExtension.js` or in C++ behaviors)
|
||||
* **Instances** of objects can also have custom properties.
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ GDevelop source code is hosted on GitHub, which is based on the Git version cont
|
||||
|
||||
If it's the first time and you have just "forked" GDevelop on GitHub, clone your repository: `git clone git@github.com:your-username/GDevelop.git`. This will download your copy of the repository on your local computer.
|
||||
|
||||
* Your own repository is usually called, in git jargon, a "remote" repository, named `origin`. When you do a `git push`, `git pull`, your usually, unless specified otherwise, getting or sending code to your repository.
|
||||
* The [GDevelop "official repository"](https://github.com/4ian/GDevelop) is also a remote, usually called `upstream`.
|
||||
- Your own repository is usually called, in git jargon, a "remote" repository, named `origin`. When you do a `git push`, `git pull`, your usually, unless specified otherwise, getting or sending code to your repository.
|
||||
- The [GDevelop "official repository"](https://github.com/4ian/GDevelop) is also a remote, usually called `upstream`.
|
||||
|
||||
By default, when you have just "cloned" your repository, there is only the single remote `origin`. It will be useful later to have the `upstream` remote (to get the latest code from GDevelop). You can do it by entering: `git remote add upstream https://github.com/4ian/GDevelop.git`.
|
||||
|
||||
@@ -20,17 +20,18 @@ By default, when you have just "cloned" your repository, there is only the singl
|
||||
In git, all the code is stored in the repository, and changes are stored in *commits*. The latest version of the source code is in a "branch", which is called `master` (it's an arbitrary convention).
|
||||
|
||||
When you'll make new additions to GDevelop, you'll make a new "branch". Imagine a branch like the branch of a tree:
|
||||
|
||||
- The source code is in master, which is the trunk of the tree, with tons of commits.
|
||||
- Your branch will grow from master, adding a few commits.
|
||||
- You can open a [Pull Request](https://help.github.com/en/articles/creating-a-pull-request) to propose the changes made on your branch.
|
||||
- If your changes are accepted, they will get *merged* into `master`.
|
||||
- If your changes are accepted, they will get *merged* into `master`.
|
||||
|
||||
At this point, you can discard your branch and go back to master: `git checkout master`.
|
||||
|
||||
## 3. Step by step commands for making changes
|
||||
|
||||
- Always start from your master branch (`git checkout master`). When you start a new branch (using `git checkout -b branch-name`), you will start this branch **from the previous branch you were on** (read more about this - but most of the time you want to do this when you're on master, not when you're already on a branch).
|
||||
- Get the latest commits from the "upstream", which is [this repository](https://github.com/4ian/GDevelop).
|
||||
- Get the latest commits from the "upstream", which is [this repository](https://github.com/4ian/GDevelop).
|
||||
- To add the "upstream" as a remote repository, if needed, you can do: `git remote add upstream https://github.com/4ian/GDevelop.git`.
|
||||
- Then, get the latest commits (make sure you're on your master): `git pull upstream master` ("pull the latest commits from master branch of the upstream repository"). If there is a merge, it's fine.
|
||||
- Then from now, always start branch from master:
|
||||
@@ -54,7 +55,7 @@ Forget this branch and go back to master (`git checkout master`). Get the latest
|
||||
|
||||
⚠️ In other words, don't **stay on your branch once you're done**. Go back to master and get the latest changes from GDevelop "official" repository.
|
||||
|
||||
> If you want to, you can delete the branch you made, as it is not useful: `git branch -D my-branch`. **Make sure that your commits are merged into GDevelop before doing so**. Don't do it before a pull request is merged.
|
||||
> If you want to, you can delete the branch you made, as it is not useful: `git branch -D my-branch`. **Make sure that your commits are merged into GDevelop before doing so**. Don't do it before a pull request is merged.
|
||||
|
||||
## Afraid of doing something? 🚩Checkpoint! Make a new branch from your existing branch
|
||||
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
This is the Electron sources to package GDevelop new IDE into a standalone editor.
|
||||
|
||||
See [the general README](../README.md) for more information.
|
||||
See [the general README](../README.md) for more information.
|
||||
|
||||
Reference in New Issue
Block a user