1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-08 18:44:00 +00:00
Commit Graph

708 Commits

Author SHA1 Message Date
tobspr
3ad502c5a7 Fix belt path optimization 2022-02-01 17:04:43 +01:00
tobspr
c41aaa1fc5
Mod Support - 1.5.0 Update (#1361)
* initial modloader draft

* modloader features

* Refactor mods to use signals

* Add support for modifying and registering new transltions

* Minor adjustments

* Support for string building ids for mods

* Initial support for adding new buildings

* Refactor how mods are loaded to resolve circular dependencies and prepare for future mod loading

* Lazy Load mods to make sure all dependencies are loaded

* Expose all exported members automatically to mods

* Fix duplicate exports

* Allow loading mods from standalone

* update changelog

* Fix mods folder incorrect path

* Fix modloading in standalone

* Fix sprites not getting replaced, update demo mod

* Load dev mod via raw loader

* Improve mod developing so mods are directly ready to be deployed, load mods from local file server

* Proper mods ui

* Allow mods to register game systems and draw stuff

* Change mods path

* Fix sprites not loading

* Minor adjustments, closes #1333

* Add support for loading atlases via mods

* Add support for loading mods from external sources in DEV

* Add confirmation when loading mods

* Fix circular dependency

* Minor Keybindings refactor, add support for keybindings to mods, add support for dialogs to mods

* Add some mod signals

* refactor game loading states

* Make shapez exports global

* Start to make mods safer

* Refactor file system electron event handling

* Properly isolate electron renderer process

* Update to latest electron

* Show errors when loading mods

* Update confirm dialgo

* Minor restructure, start to add mod examples

* Allow adding custom themesw

* Add more examples and allow defining custom item processor operations

* Add interface to register new buildings

* Fixed typescript type errors (#1335)

* Refactor building registry, make it easier for mods to add new buildings

* Allow overriding existing methods

* Add more examples and more features

* More mod examples

* Make mod loading simpler

* Add example how to add custom drawings

* Remove unused code

* Minor modloader adjustments

* Support for rotation variants in mods (was broken previously)

* Allow mods to replace builtin sub shapes

* Add helper methods to extend classes

* Fix menu bar on mac os

* Remember window state

* Add support for paste signals

* Add example how to add custom components and systems

* Support for mod settings

* Add example for adding a new item type

* Update class extensions

* Minor adjustments

* Fix typo

* Add notification blocks mod example

* Add small tutorial

* Update readme

* Add better instructions

* Update JSDoc for Replacing Methods (#1336)

* upgraded types for overriding methods

* updated comments

Co-authored-by: Edward Badel <you@example.com>

* Direction lock now indicates when there is a building inbetween

* Fix mod examples

* Fix linter error

* Game state register (#1341)

* Added a gamestate register helper

Added a gamestate register helper

* Update mod_interface.js

* export build options

* Fix runBeforeMethod and runAfterMethod

* Minor game system code cleanup

* Belt path drawing optimization

* Fix belt path optimization

* Belt drawing improvements, again

* Do not render belts in statics disabled view

* Allow external URL to load more than one mod (#1337)

* Allow external URL to load more than one mod

Instead of loading the text returned from the remote server, load a JSON object with a `mods` field, containing strings of all the mods. This lets us work on more than one mod at a time or without separate repos. This will break tooling such as `create-shapezio-mod` though.

* Update modloader.js

* Prettier fixes

* Added link to create-shapezio-mod npm page (#1339)

Added link to create-shapezio-mod npm page: https://www.npmjs.com/package/create-shapezio-mod

* allow command line switch to load more than one mod (#1342)

* Fixed class handle type (#1345)

* Fixed class handle type

* Fixed import game state

* Minor adjustments

* Refactor item acceptor to allow only single direction slots

* Allow specifying minimumGameVersion

* Add sandbox example

* Replaced concatenated strings with template literals (#1347)

* Mod improvements

* Make wired pins component optional on the storage

* Fix mod examples

* Bind `this` for method overriding JSDoc (#1352)

* fix entity debugger reaching HTML elements (#1353)

* Store mods in savegame and show warning when it differs

* Closes #1357

* Fix All Shapez Exports Being Const (#1358)

* Allowed setting of variables inside webpack modules

* remove console log

* Fix stringification of things inside of eval

Co-authored-by: Edward Badel <you@example.com>

* Fix building placer intersection warning

* Add example for storing data in the savegame

* Fix double painter bug (#1349)

* Add example on how to extend builtin buildings

* update readme

* Disable steam achievements when playing with mods

* Update translations

Co-authored-by: Thomas (DJ1TJOO) <44841260+DJ1TJOO@users.noreply.github.com>
Co-authored-by: Bagel03 <70449196+Bagel03@users.noreply.github.com>
Co-authored-by: Edward Badel <you@example.com>
Co-authored-by: Emerald Block <69981203+EmeraldBlock@users.noreply.github.com>
Co-authored-by: saile515 <63782477+saile515@users.noreply.github.com>
Co-authored-by: Sense101 <67970865+Sense101@users.noreply.github.com>
2022-02-01 16:35:49 +01:00
tobspr
112e179bce Minor wegame adjustments 2021-09-12 11:04:32 +02:00
tobspr
358754307a Fix balancers 2021-08-29 14:43:13 +02:00
tobspr
f61f25934f Add setting to always show shape tooltip 2021-08-26 14:29:22 +02:00
tobspr
ae6c5b151e Improve shape tooltip 2021-08-26 14:24:09 +02:00
tobspr
f3b82961dc Fix map chunk view 2021-08-26 09:04:46 +02:00
tobspr
8b5cd160b6 DLC: Next Puzzle button & Search functionality, other stuff 2021-08-25 16:56:52 +02:00
tobspr
06d5c6a6dc Fixes & update changelog 2021-08-25 13:23:02 +02:00
PFedak
6f56d77535
Aggregate map chunks in overlay. (#1247)
Overlay rendering performance seemed bottlenecked by drawImage calls. To
reduce both the number of calls and the number of different source
buffers, cache overlay buffers for squares of chunks. This adds a very
small extra cost for updates (one additional drawImage) and some cost
for drawing chunks outside of view, but this is more than made up for by
the savings.

By default, the aggregate are 4x4 squares of chunks.
2021-08-25 13:04:52 +02:00
Emerald Block
2b4eb6771f
fix deselect on level up (#1033) 2021-08-25 12:59:03 +02:00
tobspr
993bd53a07 Shape tooltip adjustments 2021-08-25 12:55:59 +02:00
Sense101
4b36426a77
Added shape tooltip - final version (#1251)
* Added shape tooltip

* Shortened and simplified shape tooltip code

* added special logic for cutters so they remove overlays of empty outputs, and added clearing overlays on clear items
2021-08-25 11:56:29 +02:00
Sense101
736fbaed42
cleanup of trim code (#1283) 2021-08-24 19:38:16 +02:00
tobspr
ff47920e81 Further wegame adjustments 2021-08-18 17:22:50 +02:00
tobspr
c4ef7d4431 wegame version adjustments 2021-08-17 19:51:28 +02:00
tobspr
012818841d Wegame version adjustments 2021-08-16 12:34:40 +02:00
tobspr
8547dc409d Merge branch 'master' of github.com:tobspr/shapez.io 2021-08-04 12:52:49 +02:00
tobspr
1b34346c0b Closes 1266 2021-08-04 12:52:45 +02:00
Sense101
599cc7cf9f
fixed allowing puzzles which autocomplete (#1262) 2021-08-04 12:50:31 +02:00
tobspr
d8b34ca438 Minor PR adjustments 2021-08-04 12:49:01 +02:00
PFedak
e4f02abeb3
Simplify item processor slot logic. (#1257)
Track input slot assignment by array index rather than including extra
data in a new object. This greatly reduces the amount of garbage
generated by tryTakeItem and other item process operations.
2021-08-04 12:34:15 +02:00
Emerald Block
0a15958af9
Highlight focused text inputs, Show old signal (#1255)
* provide previous key when editing signal

* highlight text in focused text input
2021-08-04 12:19:58 +02:00
Sense101
260041702b
Hotfix to prevent pasting locked buildings (#1272)
* fix to prevent pasting locked buildings

* only check when in editor
2021-07-28 09:20:08 +02:00
tobspr
232ad79c02 Demo version adjustments 2021-06-30 10:17:16 +02:00
tobspr
b6de716bee Clean up links 2021-06-25 19:29:23 +02:00
tobspr
dba91fa50c Merge branch 'master' of https://github.com/tobspr/shapez.io 2021-06-25 16:31:56 +02:00
tobspr
db355da09e Minor puzzle control refactoring 2021-06-25 16:31:54 +02:00
Sense101
5fb7bb0586
Minor goal acceptor adjustments to help prevent backing up belts to complete (#1236)
* added the new splitter

* Update base-en.yaml

* added the new splitter

Update changelog and update translation regarding 20 upgrade tiers, closes #907

* Update base-en.yaml

* minor goal acceptor adjustments to help prevent backing up belts to complete

* removed gap between completion and fill as it doesn't look nice

* removed api override

* fixed mistake with fill percentage

* Allowed for copying acceptors to remember the required shape

* further adjusted required items, so it looks a bit nicer
2021-06-25 16:16:09 +02:00
tobspr
285dd3840d Some fixes 2021-06-25 16:15:05 +02:00
Sense101
a75a880126
Fixed blueprint not properly clearing on right click (#1235)
* added the new splitter

* Update base-en.yaml

* added the new splitter

Update changelog and update translation regarding 20 upgrade tiers, closes #907

* Update base-en.yaml

* fixed blueprints not clearing properly
2021-06-25 16:08:00 +02:00
tobspr
7b18d54cbe Minor PR adjustments 2021-06-24 19:13:21 +02:00
Sense101
f7cc313ff4
Add back copy/paste in puzzle mode. (#1230)
* added the new splitter

* Update base-en.yaml

* added the new splitter

Update changelog and update translation regarding 20 upgrade tiers, closes #907

* Update base-en.yaml

* Added back copy/paste in puzzle mode

* fixed rotating non-rotatable buildings as blueprints and made blocker non-rotatable
2021-06-24 18:45:48 +02:00
Sense101
1c23549b39
Added a button to clear all non fixed buildings in both modes (#1229)
* added the new splitter

* Update base-en.yaml

* added clear buildings button to both game modes

* Minor cleanups and added translation for new button
2021-06-24 18:41:37 +02:00
Sense101
6efbdc6ad1
Fix for cheating puzzles by quickly switching belts (#1226)
* added the new splitter

* Update base-en.yaml

* adjusted how acceptor works to fix macro

* fixed a minor bug

* applied changes to the puzzle-editor-review script

* minor cleanups
2021-06-24 18:39:50 +02:00
tobspr
10428ec6b9 Fix "disableGrid" option causing glitches in the puzzle dlc 2021-06-22 14:37:03 +02:00
tobspr
4e763ae93a Merge branch 'master' of https://github.com/tobspr/shapez.io 2021-06-20 11:53:50 +02:00
tobspr
c6bb1a22fb Bugfix backport 2021-06-20 11:53:37 +02:00
tobspr
8149ba875b Minor artwork adjustments 2021-06-19 17:46:28 +02:00
tobspr
a3fb3c432a Fix another bug 2021-05-25 12:09:54 +02:00
tobspr
f5d03ae027 Localized puzzle dlc logo 2021-05-25 09:24:53 +02:00
tobspr
b3d1204d9c Wegame version & DLC Translation in Chinese 2021-05-25 09:19:57 +02:00
tobspr
65721e0837 Fix savegame bugs 2021-05-24 16:47:36 +02:00
tobspr
42af2b63d6 Authorize via steam 2021-05-23 17:28:39 +02:00
tobspr
931c8a5821
Puzzle DLC (#1172)
* Puzzle mode (#1135)

* Add mode button to main menu

* [WIP] Add mode menu. Add factory-based gameMode creation

* Add savefile migration, serialize, deserialize

* Add hidden HUD elements, zone, and zoom, boundary constraints

* Clean up lint issues

* Add building, HUD exclusion, building exclusion, and refactor

- [WIP] Add ConstantProducer building that combines ConstantSignal
and ItemProducer functionality. Currently using temp assets.
- Add pre-placement check to the zone
- Use Rectangles for zone and boundary
- Simplify zone drawing
- Account for exclusion in savegame data
- [WIP] Add puzzle play and edit buttons in puzzle mode menu

* [WIP] Add building, component, and systems for producing and
accepting user-specified items and checking goal criteria

* Add ingame puzzle mode UI elements

- Add minimal menus in puzzle mode for back, next navigation
- Add lower menu for changing zone dimenensions

Co-authored-by: Greg Considine <gconsidine@users.noreply.github.com>

* Performance optimizations (#1154)

* 1.3.1 preparations

* Minor fixes, update translations

* Fix achievements not working

* Lots of belt optimizations, ~15% performance boost

* Puzzle mode, part 1

* Puzzle mode, part 2

* Fix missing import

* Puzzle mode, part 3

* Fix typo

* Puzzle mode, part 4

* Puzzle Mode fixes: Correct zone restrictions and more (#1155)

* Hide Puzzle Editor Controls in regular game mode, fix typo

* Disallow shrinking zone if there are buildings

* Fix multi-tile buildings for shrinking

* Puzzle mode, Refactor hud

* Puzzle mode

* Fixed typo in latest puzzle commit (#1156)

* Allow completing puzzles

* Puzzle mode, almost done

* Bump version to 1.4.0

* Fixes

* [puzzle] Prevent pipette cheats (miners, emitters) (#1158)

* Puzzle mode, almost done

* Allow clearing belts with 'B'

* Multiple users for the puzzle dlc

* Bump api key

* Minor adjustments

* Update

* Minor fixes

* Fix throughput

* Fix belts

* Minor puzzle adjustments

* New difficulty

* Minor puzzle improvements

* Fix belt path

* Update translations

* Added a button to return to the menu after a puzzle is completed (#1170)

* added another button to return to the menu

* improved menu return

* fixed continue button to not go back to menu

* [Puzzle] Added ability to lock buildings in the puzzle editor! (#1164)

* initial test

* tried to get it to work

* added icon

* added test exclusion

* reverted css

* completed flow for building locking

* added lock option

* finalized look and changed locked building to same sprite

* removed unused art

* added clearing every goal acceptor on lock to prevent creating impossible puzzles

* heavily improved validation and prevented autocompletion

* validation only checks every 100 ticks to improve performance

* validation only checks every 100 ticks to improve performance

* removed clearing goal acceptors as it isn't needed because of validation

* Add soundtrack, puzzle dlc fixes

Co-authored-by: Greg Considine <gconsidine@users.noreply.github.com>
Co-authored-by: dengr1065 <dengr1065@gmail.com>
Co-authored-by: Sense101 <67970865+Sense101@users.noreply.github.com>
2021-05-23 16:32:05 +02:00
Garrow Bedrossian
d887439966
Set building rotation with arrow keys ⬆⬇⬅➡ (#1074)
* Set building rotation with arrow keys ⬆⬇⬅➡

Adds 4 default keybinds to quickly set building rotation in each of the
four cardinal directions - up, down, left, and right - using the arrow keys.

* Address feedback, remove needless else
2021-03-11 13:48:10 +01:00
Greg Considine
d1ef3f834e
Fix/achievements (#1091)
* [WIP] Fix achievements with unlock attempt on init. Fix lint

* Add init checks for more achievements

* Fix tslint errors

* Update CI step to include config.local copy from template if not present
2021-03-11 06:11:29 +01:00
Tobias Springer
4685f813e8 Achievements, fix no. 2 2021-03-10 12:50:43 +01:00
Tobias Springer
f83e9f0fb8 Multiple fixes to the achievements 2021-03-10 11:59:47 +01:00
Tobias Springer
dfd64a901b Minor marketing adjustments 2021-03-10 10:10:18 +01:00
Tobias Springer
226149a40f Prepare the achievements update 2021-03-10 09:29:20 +01:00
Greg Considine
26b842494f
Achievements (#1087)
* [WIP] Add boilerplate for achievement implementation

* Add config.local.template.js and rm cached copy of config.local.js

* [WIP] Implement painting, cutting, rotating achievements (to log only)

* [WIP] Refactor achievements, jsdoc fixes, add npm script

- Refactor achievements to make use of Signals
- Move implemented achievement interfaces to appropriate
platform folders (SteamAchievements in currently in use
in browser wrapper for testing)
- Fix invalid jsdocs
- Add dev-standalone script to package.json scripts

* Add steam/greenworks IPC calls and optional private-artifact dependency

* Include private artifacts in standalone builds

* Uncomment appid include

* [WIP] Add steam overlay fix, add hash to artifact dependency

* Update electron, greenworks. Add task to add local config if not present

* Add more achievements, refactor achievement code

* Add receiver flexibility and more achievements
- Add check to see if necessary to create achievement and add receiver
- Add remove receiver functionality when achievement is unlocked

* Add achievements and accommodations for switching states
- Fix startup code to avoid clobbering achievements on state switch
- Add a few more achievements

* Add achievements, ids. Update names, keys for consistency

* Add play time achievements

* [WIP] Add more achievements

* Add more achievements. Add bulk achievement check signal

* [WIP] Add achievements. Start savefile migration

* Add achievements. Add savefile migration

* Remove superfluous achievement stat

* Update lock files, fix merge conflict
2021-03-10 07:33:39 +01:00
tobspr
d8261a0b31 Closes #1052 2021-01-17 15:14:29 +01:00
tobspr
aa2b64eae5 Fix items overlapping sometimes, fix constant signal being editable 2020-12-09 10:41:49 +01:00
tobspr
22735591e9 Minor hotfixes 2020-12-07 20:14:23 +01:00
tobspr
01733c48a3 Prevent items from being rendered on each other when a belt stalls, closes #1000 2020-12-07 19:24:39 +01:00
tobspr
8e2efb0756 Fix belts being too slow sometimes, closes #999 2020-12-07 19:15:57 +01:00
EmeraldBlock
c0027778ef
Hide wires layer grid with disable grid option (#991)
When the Disable Grid option is on,
the grid shown on the wires layer also disappears.
This is done by replacing the wires tile grid pattern
with a pure color that is the average color of the tile image.
The color also has the same transparency as the tile image.
The use of a pure color loses the grainy look of the image.
2020-12-07 18:43:58 +01:00
tobspr
3b268294df Minor adjustments 2020-12-07 18:39:12 +01:00
Ethan Chapman
1230b873aa
Require LMB to place blueprints (#979) 2020-12-07 18:37:49 +01:00
tobspr
3ada0d5774 Allow to cycle variants backwards with SHIFT + T, other fixes and misc stuff 2020-12-07 18:30:33 +01:00
artemisSystem
503e643fd4
add separate unpin button to pinned shapes (#839)
Co-authored-by: 3ddy <39034386+3ddyy@users.noreply.github.com>
2020-12-07 13:11:41 +01:00
tobspr
ca1af5a505 Allow cycling backwards, closes #790 2020-12-07 13:04:58 +01:00
tobspr
f5032a02ce Add layersupport for waypoints 2020-12-07 12:57:49 +01:00
Daan Breur
944b3c011c
Added layersupport to waypoints!! (#703)
* Added layersupport to waypoints!!
It will now save what layer its made on!

* Added Migrator for 1006 to 1007

* Corrected Version Number

* Updated Comment

* Changed HUB Layer to be hardcoded
2020-12-07 12:48:30 +01:00
tobspr
82aaf7f037 Add ability to edit constant signals, bump version 2020-12-07 12:47:19 +01:00
CEbbinghaus
ff37013074
Added Flooring the Required amount (#904) 2020-10-31 12:23:13 +01:00
LeopoldTal
070245270f
Use locale decimal separator on belt reader display (#816)
* use locale decimal separator on belt reader display

* rename formatter method
2020-10-31 10:15:45 +01:00
tobspr
1ab0fb7d9c Fix stacking bug and bump version, fixes #814 2020-10-11 08:18:55 +02:00
EmeraldBlock
868f9bc06a
Fix reader cap (#810) 2020-10-10 19:36:08 +02:00
tobspr
1164ef4030 Offer tutorial videos 2020-10-09 08:16:20 +02:00
tobspr
d25a548ff3 Rebalance 2020-10-08 23:18:01 +02:00
tobspr
8260edb373 Get rid of some todos / fixmes 2020-10-08 19:47:27 +02:00
tobspr
1025bede1f Add wires tutorial 2020-10-08 19:40:58 +02:00
tobspr
deab844d04 Add more tutorials 2020-10-08 19:01:12 +02:00
tobspr
c8ac2de44d Add storage to wires toolbar 2020-10-08 12:56:44 +02:00
tobspr
7b01db5dae Minor fixes 2020-10-08 10:41:06 +02:00
tobspr
e1f3454629 Merge branch 'master' of https://github.com/tobspr/shapez.io 2020-10-08 09:13:55 +02:00
tobspr
5a96e76151 Allow configuring map resources scale 2020-10-08 09:13:53 +02:00
EmeraldBlock
a79500d574
Fix non-uniform distribution for freeplay shape color palette (#789)
* use nextIntRange instead of nextIntRangeInclusive

* Remove nextIntRangeInclusive

This function gave the minimum and maximum integer half as much weight, and it was not used anywhere except to generate a freeplay shape color palette, and that now uses nextIntRange.
2020-10-08 08:44:10 +02:00
tobspr
21c9c3cee6 Fix belt path epsilon 2020-10-07 19:31:11 +02:00
tobspr
38ba763897 Allow disabling zoom towards cursor 2020-10-07 19:12:49 +02:00
tobspr
bc5ffcddd1 Change rotator, improve artwork 2020-10-07 19:02:42 +02:00
tobspr
1bb8b6f079 Get rid of performance warning, refactor roman numbers, mark balancers, rebalance upgrades 2020-10-07 18:35:03 +02:00
tobspr
f3dcdeb2b8 Fix pinned shapes not being removable 2020-10-07 18:05:11 +02:00
tobspr
7dccc1a844 Unlock all levels when having a legacy savegame 2020-10-07 15:02:27 +02:00
tobspr
fa27d1681f Cleanup IS_DEMO flags and introduce Restriction Manager 2020-10-07 09:48:31 +02:00
tobspr
81e7d96dd8 Merge branch 'master' of https://github.com/tobspr/shapez.io 2020-10-07 08:36:26 +02:00
tobspr
9844641d11 Missing parts from last commit 2020-10-07 08:36:24 +02:00
tobspr
94266173d8 Introduce game modes and get rid of global level definitions etc 2020-10-07 08:36:02 +02:00
EmeraldBlock
00cce9479a
Set atlas scale for screenshot to constant value (#776) 2020-10-06 17:27:47 +02:00
EmeraldBlock
0481c84e72
"Fix" getStringForKeyCode returning incorrect strings (#753)
* Fix getStringForKeyCode returning wrong result

This adds the full stop/period (.) key to the switch statement, and replaces String.fromCharCode (which works with Unicode) with the replacement character (�).

* Make letter keys work properly

* Add digits and display unknown codes in brackets

* better formatting
2020-10-04 10:34:40 +02:00
tobspr
83c4552f9c DE translation fixes 2020-10-01 09:25:29 +02:00
tobspr
abaf9890b8 Don't cache pattern 2020-09-29 19:30:03 +02:00
tobspr
1c97f3f32a Fix demo flags 2020-09-29 18:42:29 +02:00
tobspr
1c88b99de3 A/B test whether showing the price is good or not 2020-09-29 18:26:38 +02:00
tobspr
8b7c0a91cd Change watermark interval 2020-09-29 18:06:39 +02:00
tobspr
344f213566 Minor refactoring 2020-09-29 18:03:53 +02:00
dengr1065
9aff7f9f6d
Rename delta to scale in camera.js (#705) 2020-09-29 17:44:22 +02:00
EmeraldBlock
7f6c1187b8
Make zoom in and zoom out equal (#704)
* Make zoom in and zoom out equal

Makes zooming out zoom an amount equal to zooming in.

* format things better

* Made zoom keys also equal

Made zoom out equal to zoom in

* Actually made arrow keys equal

hope this actually works
2020-09-29 16:48:41 +02:00