Skip to content

Commit

Permalink
Merge commit 'c9a3ef5727fb4b0ab06664be5e98d4dec9535a55' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
CosmoMyzrailGorynych committed Aug 29, 2020
2 parents d2bd8ba + c9a3ef5 commit cfb7a23
Show file tree
Hide file tree
Showing 140 changed files with 7,708 additions and 2,075 deletions.
21 changes: 18 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@ stages:
- name: lint
- name: build
- name: pack
if: tag IS present
- name: deploy
if: tag IS present
if: (tag IS present) AND (type != cron)
- name: packNightly
if: (branch = develop) AND (type = cron)

jobs:
include:

- stage: lint
script:
- gulp lint
Expand All @@ -28,6 +29,7 @@ jobs:
script:
- gulp build
skip_cleanup: true

- stage: pack
script:
- gulp -f devSetup.gulpfile.js
Expand All @@ -48,5 +50,18 @@ jobs:
- provider: script
script: gulp deployOnly
skip_cleanup: true
on:
all_branches: true

- stage: packNightly
script:
- gulp -f devSetup.gulpfile.js
- gulp packages --nightly --buildNum=$TRAVIS_BUILD_NUMBER
skip_cleanup: true
deploy:
# Push to comigo.itch.io/ct
- provider: script
script: gulp deployOnly --nightly --buildNum=$TRAVIS_BUILD_NUMBER
skip_cleanup: true
on:
all_branches: true
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,17 @@ If you are willing to participate in ct.js' future, contact me at Discord (CoMiG
* [Like ct.js on AlternativeTo](https://alternativeto.net/software/ct-js/)
* [Rate ct.js on Slant in different questions](https://www.slant.co/options/30242/~ct-js-review)

# 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.

# Nightly builds

We have [daily 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. [Itch.io app](https://itch.io/app) is strongly recommended.

# Repo structure & tools

* `app` — an [Electron app](https://electronjs.org/), with its configs and static files.
* `app` — an [NW.js app](https://nwjs.io/), with its configs and static files.
* `data`
* `ct.release` — the ct.js game library, aka its "core"
* `ct.libs` — catmods (modules) that ship with ct.js. Feel free to create a pull request with your module!
Expand Down
83 changes: 83 additions & 0 deletions app/Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,86 @@
## v1.4.2

*Sat Aug 29 2020*

### ✨ New Features

* Add `tag` catmod, for adding tags for individual copies and rooms.
* Add a properties panel for tweaking parameters of an individual copy.
* Add `PIXI.MultiStyleText` module.
* Add support for moddable extensions for individual copies.
* Add texture generator for placeholders.
* Background color control for rooms (finally!)
* Code completions now suggest names of types, rooms, sounds, actions, and emitters.
* `ct.place.moveByAxes` and `this.moveContinuousByAxes` for easy movement at platformers and top-down games.
* `ct.place.moveAlong` now checks against tiles too
* Fast integer scaling mode for `ct.fittoscreen`, for purely pixelart projects.
* Hide default cursor at Project -> Render Options -> Hide system cursor
* Import a texture by pasting it from a clipboard. Will update an existing opened texture as well!
* In the room editor, Shift+Click now selects the nearest copy or tile.
* New `select` input type for catmods, as an alternative to `radio`
* Nightly builds at comigo.itch.io/ct-nightly.
* Seeded random for `ct.random` module
* `slider`, `sliderAndNumber` input types for extensions, and additional settings for them and `number` inputs.
* Sort copies or tiles inside a room with two new buttons at the top-left corner of the room editor. Extremely handy for isometric games!
* Toggle UI sounds in the Main menu -> Settings

### ⚡️ General Improvements

* A popup to quickly fix backgrounds at the room editor if their texture is not marked for tiled use.
* Add .itch.toml to simplify run dialog on Linux.
* Add `dnd-processor` tag that solves edge cases with drag-and-drop behavior and allows dropping any supported files on any tab.
* Add icons that highlight deprecated and preview modules more clearly.
* Better zooming controls for room, texture, and emitter editors.
* Change build, projects', export folders to be stored under the `~/ct.js/` directory.
* Change `ct.fs` to use app data directories for Linux, Windows, macOS (#226 by @JulianWebb).
* Decrease threshold that differentiated clicks and drags in room editor, improving placing behavior of multiple tiles/copies.
* Improve preview making process for textures.
* Improve tile positioning algorithm for the room editor.
* Minor UI improvements for the texture viewer.
* Position context menus so that they don't exceed viewport's size.
* Rename "Author" field at settings into "Developer" (i18n strings only).
* Scale smaller tilesets to fit the tile picker, at the room editor.
* Update Russian UI translation.

### 🐛 Bug Fixes

* A workaround for 'oncancel' not being fired on `input(type="file")` tags. Fixes an issue with invisible inputs overlaying the main menu.
* Add the missing CSS directive for pixelated projects.
* Fix checkboxes at extensions and module settings not showing the actual value's state
* Fix `ct.mouse` returning old coordinates if a camera has moved, but a cursor hasn't.
* Fix incorrect drawing of scaled copies in the room editor.
* Fix issues with camera movement at room editor with extreme zooming factors.
* Fix modules' extensions being parsed at the exporter if they have undefined or unset (equal to -1) secondary keys.
* Fix overflow issues and wrong initial values for bitmap font generator.
* Fix regression from v1.4 with blurry particle editor and room view when pixelart rendering was enabled.
* Fix `user-select` CSS parameter on modules' docs panel.
* Hotfix: fix font import issues on Windows, as well as fix potential similar issues for other asset types

### 🍱 Demos, Dependencies and Stuff

* Add the missing link to the bitmap fonts page in the navigation panel.
* At the platformer tutorial, fix a typo in collectibles title.
* Bump various catmods' versions.
* Fix small error in describing key input in the asteroid shooter tutorial.
* Fixed bitmap fonts docs. The `font` in the constructor should be an object.
* Specify the tab for enemy/asteroid generation code at space shooter tutorial.
* Update electron-packager to v15.0.0. Fixes build issues for Windows.

### 📝 Docs

* Add info about moddable copies' extensions
* Document new input types `slider` and `sliderAndNumber`, as well as additional settings for them

### 🌐 Website

* :sparkles: Presskit

### 🌚 Misc

* :fire: Remove keymage.js, as it is not used anymore
* :fire: Remove keymaster.js, as it is not used anymore


## v1.4.1

*Sun Aug 10 2020*
Expand Down
Binary file modified app/ct_ide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 41 additions & 0 deletions app/data/ct.libs/3d/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 3D Projection

> Warning: this module is in its early stages, it is more a proof of concept than a thing to be used.
> It does render stuff, but doesn't hide items behind the camera.
> It also has a drawback: as ct.js v1.x uses AnimatedSprite for everything and the underlying projection module
> doesn't support them, all the copies are transfromed as parallelograms.
> Oh, and there is still no `ct.place3d` or such.
> And no support for tiles. Yet.
## The Axes

Initially, the camera looks along the Z axis.

* X points to the right;
* Y points downwards;
* Z points forwards.

## The Idea

Rooms are still designed in 2D space. Making a full-featured room editor would be a pain.
The module needs to transform these 2D rooms into 3D space. A number of rules are applied:

* X coordinate is remained as is.
* If the 2D room is a side-view level, Y is left as is, and Z coordinate is set by the Depth property.
* If the 2D room is a top-down level, 2D Y axis becomes Z, and Y in 3D is set by the negated Depth property.

You can set whether a room is a side-view or a top-down level in a room's settings tab.

## 3D Camera

A new object `ct.camera3d` is added. Use it to position the camera in the 3D world. It has all the properties listed below.

## 3D transforms

`this.x`, `this.y`, `this.position`, `this.rotation` and `this.scale` still exist, but they should not be used. Instead,

* Use `this.position3d` with `x`, `y` and `z` parameters to position objects.
* Use `this.euler` with `pitch`, `yaw` and `roll` parameters to rotate them.
* Use `this.scale3d` with `x`, `y` and `z` parameters to scale stuff.
Loading

0 comments on commit cfb7a23

Please sign in to comment.