Skip to content

Commit

Permalink
Merge commit '42d64e65d8869a9f4ad4d36bb2efe9c9c89b5a30'
Browse files Browse the repository at this point in the history
  • Loading branch information
CosmoMyzrailGorynych committed Jun 15, 2024
2 parents 438f182 + 42d64e6 commit 745eb3b
Show file tree
Hide file tree
Showing 783 changed files with 87,425 additions and 29,276 deletions.
4 changes: 3 additions & 1 deletion .github/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 90
# Issues with these labels will never be considered stale
exemptLabels: []
exemptLabels:
- 'type:epic'
- 'type:debt'
# Label to use when marking an issue as stale
staleLabel: 'state:stale'
# Comment to post when marking an issue as stale. Set to `false` to disable
Expand Down
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,15 @@ desktop\.ini
.directory

# Generated files
*.js.map
*.css.map
src/typedefs/ct.js/types.d.ts
app/data/ctLibJSDocAst.json
app/data/ct.shared/ctSound.js
app/data/ct.release/**
app/data/ct.shared/**
app/data/monaco-workers/**
app/data/codicon-TEAEXHHG.ttf
app/examples
app/templates
app/bundledAssets
Expand All @@ -69,14 +74,15 @@ app/exportDesktop
app/temp
/temp
app/data/fonts/style/.css
app/data/patronsCache.csv
app/data/patronsCache.*
builds
build
cache
tempChangelog.md
prev
trash
/Changelog.md
app/nightly

# tests
error_screenshots/
Expand Down Expand Up @@ -115,4 +121,3 @@ app/data/ct.libs/gamedistribution/.vscode/settings.json
# neutralino binaries
src/ct.release/desktopPack/bin
src/ct.release/desktopPack/game/neutralino.js
app/data/ct.shared/ctSound.js
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "DragonBonesJS"]
path = DragonBonesJS
url = https://github.com/DragonBones/DragonBonesJS.git
[submodule "SSCD.js"]
path = SSCD.js
url = https://github.com/CosmoMyzrailGorynych/SSCD.js.git
Expand Down
34 changes: 21 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Ct.js as a game editor is a web application as well, based on the NW.js framewor

**Ct.js was made to be the cross-platform, always accessible integrated tool** that is not stuck in time like most other 2D game engines that use dated renderers, limited feature sets, and have hindering UIs. Ct.js lets you focus on your game's content without worrying about technical details like asset packing and loading, handling different screen resolutions, packing for desktop, and such.

Ct.js is opinionated and gamedev-centric. To make a game, you do not need to know web development or how to summon a demon — all the tools and the knowledge are already in ct.js.
Ct.js is opinionated and gamedev-centric. To make a game, you do not need to know web development or how to summon a demon — all the tools and knowledge are already in ct.js.

**And all this is to be free** — as in beer, as in freedom, and as a reproach towards companies too deep in their corporate greed.

Expand All @@ -36,26 +36,26 @@ Ct.js is opinionated and gamedev-centric. To make a game, you do not need to kno

# Production builds

See the [releases page](https://github.com/ct-js/ct-js/releases) or [jump to itch.io page](https://comigo.itch.io/ct). Available for Windows, Mac and Linux.
See the [releases page](https://github.com/ct-js/ct-js/releases) or [jump to the itch.io page](https://comigo.itch.io/ct). Available for Windows, Mac and Linux.

# Nightly builds

We host [dev builds at itch.io](https://comigo.itch.io/ct-nightly). This page will have nightly versions that are built from the `develop` branch from our repository. It means that you will get the latest features, improvement, bug fixes, **and new bugs** daily, out of the oven. Use with caution and have fun. [Itch.io app](https://itch.io/app) is strongly recommended.
We host [dev builds at itch.io](https://comigo.itch.io/ct-nightly). This page will have nightly versions that are built from the `develop` branch of our repository. It means that you will get the latest features, improvements, bug fixes, **and new bugs** daily, out of the oven. Use with caution and have fun. [The itch.io app](https://itch.io/app) is strongly recommended.

# Getting help

For bugs, feature requests, developing questions, please use [GitHub issues](https://github.com/ct-js/ct-js/issues) so we can better track them. For general support about making games, ask a question at our [discord server](https://discord.gg/yuvuDW5).
For bugs, feature requests, development questions, please use [GitHub issues](https://github.com/ct-js/ct-js/issues) so we can better track them. For general support about making games, ask a question at our [discord server](https://discord.gg/yuvuDW5).

# Repo structure & tools

* `app` — an [NW.js app](https://nwjs.io/), with its configs and static files.
* `data`
* `ct.libs` — catmods (modules) that ship with ct.js. Feel free to create a pull request with your module!
* `i18n` — UI language schemes. Open for pull requests! :)
* `src` — a source folder that compile into `/app` folder at a build time.
* `src` — a source folder that compiles into `/app` folder at a build time.
* `ct.release` — the ct.js game library, aka its "core"
* `js` — different top-level scripts, including 3rd-party libraries.
* `node_requires` — built and copied to the `/app` directory.
* `node_requires` — built and copied to the `/app` directory.
* `pug` — HTML sources of editor's windows, written in [Pug](https://pugjs.org/).
* `riotTags` — components that drive UI logic in ct.js. Written in [Pug](https://pugjs.org/) and [Riot.js v3](https://v3.riotjs.now.sh/).
* `styl` — style sheets, written in [Stylus](http://stylus-lang.com/).
Expand All @@ -69,7 +69,7 @@ For bugs, feature requests, developing questions, please use [GitHub issues](htt

See the [main dev board](https://github.com/orgs/ct-js/projects/5/views/7) for hot issues and plans for next releases. Prioritize the "Current release" column, then "To Do", then "Backlog", though if you really want a feature from a backlog to come true right here, right now, no one can stop you :)

Please leave a comment in issues you want to work on so that we can assign you to them and avoid occasional double work from several contributors.
Please leave a comment on issues you want to work on so that we can assign you to them and avoid occasional double work from several contributors.

## Forking and installing the dev environment

Expand All @@ -89,9 +89,9 @@ gulp -f devSetup.gulpfile.js
gulp
```

Use `gulp dev` instead of just `gulp` to run a dev service with live-reloading without opening ct.js in its default manner. In either case, you can stop this service in the usual manner for your terminal, e.g. `Ctrl+C`. If you are encountering unexplained issues, especially when switching to a new branch, run `gulp -f devSetup.gulpfile.js` again.
Use `gulp dev` instead of just `gulp` to run a dev service with live reloading without opening ct.js in its default manner. In either case, you can stop this service in the usual manner for your terminal, e.g. `Ctrl+C`. If you are encountering unexplained issues, especially when switching to a new branch, run `gulp -f devSetup.gulpfile.js` again.

VSCode can use [this extension](https://marketplace.visualstudio.com/items?itemName=ruakr.vsc-nwjs) to run ct.js with an attached debugger. Before running the debugger, to allow live-reloading, run `gulp dev`.
VSCode can use [this extension](https://marketplace.visualstudio.com/items?itemName=ruakr.vsc-nwjs) to run ct.js with an attached debugger. Before running the debugger, to allow live reloading, run `gulp dev`.

## Linting

Expand All @@ -114,14 +114,14 @@ gulp lintI18n

It's actually easy and robust. We have [regular ct.js](https://comigo.itch.io/ct) for core releases and [ct.js Nightly](https://comigo.itch.io/ct-nightly) as a canary/preview build.

* Once your PR was approved and merged, it gets into the `develop` branch.
* Once your PR is approved and merged, it gets into the `develop` branch.
* Every change to `develop` triggers a CI build, and a new version of [ct.js Nightly](https://comigo.itch.io/ct-nightly) is released publicly.
* To automatically update ct.js Nightly, we recommend using [the official itch.io app](https://itch.io/app).
* Every now and then maintainers decide to release a public version of ct.js — it involves version bumping, creating and cleaning changelog, updating screenshot, website, presskit data and such. Some stuff is automated, but it still involves manual work and public announcements on different channels. But if your change got into `develop`, it means it will reach the `master` branch as well.
* Every now and then maintainers decide to release a public version of ct.js — it involves version bumping, creating and cleaning changelog, updating screenshots, website, presskit data and such. Some stuff is automated, but it still involves manual work and public announcements on different channels. But if your change gets into `develop``, it means it will reach the `master` branch as well.

### Releasing ct.js

This is left for emergencies only, as Gitlab CI should prepare binaries for github and send them to itch.io as well
This is left for emergencies only, as Gitlab CI should prepare binaries for GitHub and send them to itch.io as well

```sh
# Builds docs and adds them to ct.js app
Expand All @@ -143,7 +143,7 @@ gulp sendGithubDraft
gulp deploy
```

The first run will be slow as it will download nw.js binaries. Next runs will use cached files.
The first run will be slow as it will download nw.js binaries. The next runs will use cached files.

## Naming conventions and references

Expand All @@ -154,3 +154,11 @@ Use [Comigo's CSS naming guide](https://cosmomyzrailgorynych.github.io/css-namin
We have some references for ct.js' internals on [our wiki](https://github.com/ct-js/ct-js/wiki).

The ct.js app has a built-in CSS stylebook in the Meta section of the main menu.

## Patrons

Ct.js is supported by these wonderful people:

<p align="center">
<img src="https://ctjs.rocks/patronsWidgetInlined.svg"/>
</p>
115 changes: 115 additions & 0 deletions app/Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,118 @@
## v5.0.0

*Sat Jun 15 2024*

### ✨ New Features

* Add a custom error display in games so players can more easily report failures. Add a toggle to disable error reporting in-game and a field to specify a custom repor link.
* Add a method `tween.value` to the `tween` catmod, and add a Catnip block to animate arbitrary computed values.
* Add an option to main menu to autoapply asset changes before launching a game
* Add community's learning resources and games to the starting screen
* Allow using bitmap labels in buttons and textboxes, and introduce a new base class for Bitmap Text labels. Add an option to increase bitmap font rendering that fixes issues with bitmap fonts
* Behaviors: add Behavior added and Behavior removed events
* Context menu item for styles to create a template with a Text base class from it
* Customize debugger's layout: split-screen, multi-windowed, and automatic (based on the screen count)
* New programming language: Catnip
* New UI themes:
* Alma Sakura
* Golden Eye
* One Dark Pro
* Synthwave '84
* `room.makeCopyAligned` and `room.makeCopyAlignedRef` methods to dynamically add copies that align to camera's boundaries, in the same way you set up them in room editor's UI tools.
* Specify additional typedefs for JS properties of behaviors, templates, and rooms. Available for JavaScript projects only.

### ⚡️ General Improvements

* :bento: Update the `light` catmod for ct.js v5
* Add `'neutralino'` case to `u.getEnvironment` (Closes #517)
* Add additional checks for extended fields and fields in asset types. Fixes not being able to use array fields for asset types in content schemas
* Align table cells to the top
* Improve layout of project scripts
* Improve performance of afterDraw injection of matter.js catmod
* Internal: `'always strict'` on ct.IDE's compiled TS files
* Internal: Enforce stricter type checks in ct.js client library
* Internal: Bundle most node_modules and ct.IDE's scripts into one file. This makes loading ct.IDE faster, as well as reduces the bundle size and install time. It also drops `--mixed-context` nw.js flag.
* Internal: Update `nw-builder` to v4.7.4
* Limit max project name length
* Relayout the debugger screen to open the console in another window. Solves issues with JS breakpoints and "stop on exception" button
* Remember opened assets when a project is saved, and reopen them when a project is loaded
* Rename "editor" to "engine" in the ct.js' devtools banner
* Replace `resedit-cli` with `resedit` for ct.IDE: removes dependency for node.js in desktop exporter.
* Rework ct.js games' CSS to be less invasive to 3rd-party widgets and such
* Rework font asset type into typefaces
* Update patrons screen and move its logic into a module
* Update QR code generator for game debugger

### 🐛 Bug Fixes

* Add a safeguard to `tween.add` to not update values if the animated object was `kill`ed.
* Add proper handling of missing event declaration. Warn user about events that use missing catmods when exporting a project and in a template editro
* Fix `updateWindowMenu` error appearing on non-MacOS devices
* Fix ancient settings for monaco editor that showed errors on ES5+ features
* Fix being able to get several context menus by right-clicking other stuff with an already opened menu
* Fix being able to select game canvas on iOS browsers
* Fix built-in asset gallery not being accessible on Mac
* Fix canvases and code editors in tandem, style, room and scriptable editors disappearing after opening a tab -> switching to another one -> resizing window -> going back to the tab with a code editor or a pixi.js canvas.
* Fix cases when content types' typedefs were not updated
* Fix copy alignment being bound to copy-pasted copies in the room editor
* Fix copy rearrangement effects resetting upon reopening a room.
* Fix emitter's rectangular shapes being misaligned
* Fix error spam about uninicialized position and scale changes in `room-entities-properties`
* Fix monaco-editors hotkeys for changing font size
* Fix old current room name in `templates.copy` documentation
* Fix SnapTarget in room editor interfering with clicks on canvas
* Fix `templates.each` method. It can also be used with arrow function now, too, as it passes a copy to the first argument of your function.
* Fix textboxes' html inputs remaining on screen when a room changes
* Fix the `tween` catmods throwing errors despite using the `silent: true` option or `.catch` handlers
* Internal: Fix `gulp docs` failing on windows with new node.js versions
* Internal: Fix context-menu tags overwriting their `ref` attribute with "root"
* Internal: Fix devSetup.gulpfile.js failing on Node.js v20.13+ and Windows
* Internal: Rename properties of context-menu tag so it doesn't pull in global values
* Make monaco-editor pass Ctrl+S, F5 & Alt+F5 hotkeys to ct.IDE so you can save/launch projects while in a code editor
* Minor visual fixes for tabs
* Prevent dragging sound thumbnails in the sound editor

### 🍱 Demos, Dependencies and Stuff

* Gallery: Add textures for buttons and panels
* Add tutorial projects ported to Catnip by @firecakes
* Add a Catnip example of LabRaid
* Pull the latest docs
* Rename examples by tagging them with used language, remove two unsupported examples
* Update Comments and Debug translation files
* Update the list of boosters

### 📝 Docs

* :bug: Example code error (Follow a copy of a template called "Character") Fixes #133
* :bug: Grammar fixes on homepage
* :bug: Make the patrons list centered
* Add a patron list to README.md
* Add Catnip examples to ct.js tutorials
* Add Learn Catnip category
* 100% russian documentation translation
* Move a couple comments in catnip's declarationExtractor to a proper place

### 🌐 Website

* :bug: Fix the broken "games made with ct.js section", put a button to submit a game
* :bug: Set unique names for forms
* :construction: I may have summoned demons
* :globe_with_meridians: Add Chinese Simplified translation (#44 by @emaoshushu)
* :globe_with_meridians: Add Japanese translation (#45 by @taxi13245)
* :sparkles: Add forms for submitting games and learning resources
* :sparkles: Create an embeddable widget with supporters
* :zap: Add a honeypot for all the fields
* :zap: Add patrons panel to homepage
* :zap: Update wording on the homepage
* Add a nice language comparison thingie

### 👾 Misc

* :fire: Internal: Delete now unused `app/projects` folder from the repo
* :fire: Internal: Remove the `DragonBones` submodule
* :globe_with_meridians: Update Russian UI translation file

## v4.0.2
*Sun Feb 25 2024*

Expand Down
9 changes: 0 additions & 9 deletions app/data/boosters.yaml

This file was deleted.

1 change: 1 addition & 0 deletions app/data/ct.libs/desktop/module.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"name": "Desktop features",
"tagline": "A module that provides useful desktop-specific features, such as manipulating the window, toggling the debugger/devtools, and more!",
"version": "0.3.0",
"icon": "monitor",
"authors": [{
"name": "Cosmo Myzrail Gorynych",
"mail": "[email protected]"
Expand Down
1 change: 1 addition & 0 deletions app/data/ct.libs/gamepad/module.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"tagline": "Connect your gamepad to the Actions system.",
"name_Ru": "Геймпад",
"tagline_Ru": "Подключает джойстики к системе Действий.",
"icon": "airplay",
"version": "2.0.0",
"packageName": "gamepad",
"authors": [
Expand Down
1 change: 1 addition & 0 deletions app/data/ct.libs/keyboard/module.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"main": {
"name": "Keyboard",
"tagline": "Add keyboard events to the Actions system.",
"icon": "airplay",
"name_Ru": "Клавиатура",
"tagline_Ru": "Добавляет события клавиатуры в систему Действий.",
"version": "4.0.0",
Expand Down
6 changes: 0 additions & 6 deletions app/data/ct.libs/keyboard/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,6 @@ declare namespace keyboard {
*/
var ctrl: boolean;

/**
* Temporarily suspend e.preventDefault() calls. For example, to allow for a HTML text
* box to be used.
*/
var permitDefault: boolean;

/**
* Resets all the `ct.keyboard` parameters.
*/
Expand Down
Loading

0 comments on commit 745eb3b

Please sign in to comment.