1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-09 02:54:01 +00:00
Commit Graph

290 Commits

Author SHA1 Message Date
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
4546ca63c1 Fix ad provider 2021-08-26 14:47:28 +02:00
tobspr
8b5cd160b6 DLC: Next Puzzle button & Search functionality, other stuff 2021-08-25 16:56:52 +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
tobspr
0751eec7d5 Gamedistribution version adjustments 2021-08-17 21:13:32 +02:00
tobspr
012818841d Wegame version adjustments 2021-08-16 12:34:40 +02:00
tobspr
eb628526c9 Wegame adjustments 2021-08-04 13:44:02 +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
Stan
e8cd01e8e0
Just a little typo (#1252)
This isn't of any significance, but I figured why not.
2021-07-01 13:24:10 +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
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
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
416f89bbf4 - Puzzle DLC browser improvements / new categories
- Fix errors not being thrown sometimes
- Minor other stuff
2021-06-19 17:16:01 +02:00
tobspr
b3d1204d9c Wegame version & DLC Translation in Chinese 2021-05-25 09:19:57 +02:00
tobspr
329cefb3c9 Authorize via steam for the puzzle api 2021-05-23 17:34:13 +02:00
tobspr
3c3cb5924f Fix typo 2021-05-23 16:40:09 +02:00
TimerErTim
b259c7576a
Fix formatItemsPerSecond with double = true (#1148)
* Show double flag with items per second being 1

formatItemsPerSecond in utils.js does not indicate two items being processed in a building
if speed is exactly one item per second. That is now fixed.

* Fix code style to fit guidelines
2021-05-23 16:39:34 +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
tobspr
38bb393190 Disable nft until properly announced 2021-03-12 20:31:50 +01:00
tobspr
4bc918dedd Add finish, italian, romania, ukrainian, minor adjustments 2021-03-12 12:42:16 +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
Tobias Springer
1ee03d7398 Adjustments to support chinese versions 2021-03-09 10:07:19 +01:00
LeopoldTal
f620706ed7
Format all upgrade tiers as Roman numerals (#830)
* format all upgrade tiers as Roman numerals

* show upgrade tiers 50+ as Arabic numerals
2020-12-07 13:06:54 +01:00
tobspr
b17cb6952b Update changelog and minor fixes 2020-10-31 12:19:51 +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
c4354161ad Add tutorial video links 2020-10-09 08:33:14 +02:00
tobspr
8260edb373 Get rid of some todos / fixmes 2020-10-08 19:47:27 +02:00
tobspr
deab844d04 Add more tutorials 2020-10-08 19:01:12 +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
1bb8b6f079 Get rid of performance warning, refactor roman numbers, mark balancers, rebalance upgrades 2020-10-07 18:35:03 +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
1c88b99de3 A/B test whether showing the price is good or not 2020-09-29 18:26:38 +02:00
tobspr
2c50944732 Minor changes 2020-09-28 12:37:15 +02:00
tobspr
507121b886 Load css async 2020-09-28 12:24:52 +02:00
tobspr
0d52793c27 Minor refactoring 2020-09-28 12:17:38 +02:00
tobspr
d4617edad5 Rework constant signal dialog 2020-09-28 12:17:13 +02:00
tobspr
d27e9226be Re-balance, fixes, etc etc 2020-09-27 22:22:05 +02:00
tobspr
f584d9d93e Further fixes found during testing, update local config 2020-09-24 17:43:50 +02:00
tobspr
1ecc2ebb5d Minor adjustments and fixes 2020-09-24 14:59:15 +02:00
tobspr
05847add71 Re-balance 2020-09-22 20:21:09 +02:00
tobspr
1ec8b4fe28 Only render shapes in map overview 2020-09-22 11:21:18 +02:00
tobspr
0274597a1c Fix tslint 2020-09-22 10:31:47 +02:00
Exund
b32ae43464
Fix 180° rotater not renamed everywhere (#675)
* Fixed atlas and buildingSpeed

* Revert atlas.json changes
2020-09-21 18:15:30 +02:00
tobspr
4636080dd7 Huge performance improvements 2020-09-21 18:09:27 +02:00
tobspr
1cd52f6dbd Fix tslint 2020-09-19 17:56:40 +02:00
tobspr
7d6af359a1 Polishing, CSS Improvements, Improve dark mode 2020-09-19 14:27:25 +02:00
tobspr
2075f4d011 Improve simplified belt, show hints everywheer 2020-09-19 12:21:32 +02:00
tobspr
47443058e0 Add potato mode 2020-09-19 10:34:46 +02:00
tobspr
7bc45d8959 Improve buffer backlog performance, should speed up whole game 2020-09-19 09:28:29 +02:00
tobspr
b5a2e77db4 Fix multiple typos, closes #627 2020-09-19 07:49:17 +02:00
tobspr
1ebfafd8de Further performance improvements, show indicator while game is saving 2020-09-18 20:41:40 +02:00
tobspr
746f4935ad Improve item ejector system 2020-09-18 18:32:53 +02:00
tobspr
b8f27aec44 Proper belt underlays for splitters 2020-09-18 18:18:38 +02:00
tobspr
6042fcba62 Properly implement sound and music volumes, debounce writes 2020-09-13 08:40:56 +02:00
tobspr
04b8b62045 Update local config 2020-08-31 12:00:06 +02:00
tobspr
9b8745535b Refactor item processor to use charges and thus be more correct, even at low tick rates 2020-08-30 15:31:53 +02:00
tobspr
270f51d9ec Increase tier 2 tunnel range to 9 2020-08-29 23:05:34 +02:00
tobspr
78fe34840a Fix buildings not working at their advertised speed, closes #440, closes #442, closes #437, closes #449 2020-08-29 22:35:30 +02:00
tobspr
238b08d4d1 Make shapes truthy 2020-08-29 11:08:30 +02:00
tobspr
06e276f021 Add belt reader building 2020-08-29 10:38:23 +02:00
tobspr
bb739c80fa Rework quad painter and filter, rework logic gates 2020-08-29 09:35:14 +02:00
tobspr
a67448fbdf Fix being able to create constant signals without value 2020-08-28 22:56:56 +02:00
Bjorn Stromberg
1ff76e0b2e
[core/rectangle] Remove unused methods (#571)
* [core/rectangle] Remove unused methods

* Restore some methods
2020-08-18 14:19:25 +02:00
tobspr
b7efda9bf6 Further performance improvements 2020-08-15 22:44:15 +02:00
tobspr
b2880700e8 Huge rendering performance improvements and minor other changes, lots of refactorings 2020-08-15 22:32:55 +02:00
tobspr
d1a5dd8c9e Update local config with latest variables and cleanup a bit 2020-08-15 19:55:39 +02:00
tobspr
7b40292be3 Start to optimize rendering 2020-08-15 19:43:03 +02:00
tobspr
b1fb0fca7e Fix wires blueprint pasting bug, do not show wire info on unconnected wires 2020-08-15 18:14:00 +02:00
tobspr
7279b75187 Improve information when hovering wires 2020-08-15 17:51:28 +02:00
tobspr
3c34227c24 Unify assets, refactor waypoints 2020-08-14 12:14:15 +02:00
tobspr
9085f32ec3 Add multiple performance settings 2020-08-14 09:38:48 +02:00
tobspr
f44563fc05 Add item filter 2020-08-13 20:30:43 +02:00
tobspr
52b4d4d742 Implement wire networks, add levers 2020-08-13 19:23:00 +02:00
tobspr
75ab655998 Add basic logic gate and improve wires in general 2020-08-13 10:23:50 +02:00
tobspr
f16ab2389a initial take on wire auto-rotation 2020-08-11 20:02:59 +02:00
tobspr
a32c0530bb Refactor rotation overview matrices 2020-08-11 18:50:43 +02:00
tobspr
b19b87a6c8 Improve map overlay rendering and raise zoom limit 2020-08-11 13:17:39 +02:00
tobspr
c1b1564d76 Fix crc generation 2020-08-10 23:34:30 +02:00
tobspr
2203d5fc6a Improve saving speed by using crc32 instead of sha1 for checksum 2020-08-10 23:31:02 +02:00
tobspr
93975df4d5 Get rid of item ejector / acceptor layers and new wires buildings for now 2020-08-10 21:24:58 +02:00
tobspr
ecbf9d7e78 Revert worker loader change 2020-08-10 19:54:11 +02:00
tobspr
2ee4f2efc7 Add more logging 2020-08-10 15:22:02 +02:00
Bjorn Stromberg
79158e2b56
Remove unused code (#526) 2020-08-06 11:28:28 +02:00
tobspr
baf5c83b34 Merge branch 'master' of https://github.com/tobspr/shapez.io 2020-07-27 17:14:32 +02:00
tobspr
bf2eee908f Refactor static map entity component to store building metaclass 2020-07-27 17:14:29 +02:00
Bjorn Stromberg
d2f9fd6ec8
Improve types for web workers (#502)
* Improve types for web workers

* Move worker-loader config inline

* Remove trailing spaces in translations
2020-07-27 17:06:12 +02:00
Bjorn Stromberg
6d01c482d8
[Perf] Avoid iterating over keys to generate assert message (#486)
* Avoid iterating over keys to generate assert message

* Move assertion call behind guard

* Shorten line by using string template
2020-07-27 11:15:59 +02:00
RogiJAG
f77d47d9f7 Add fl rotater variant 2020-07-18 12:03:49 -05:00
tobspr
a08fef88f0
Merge pull request #416 from Astavie/master
Add decimal separator option in translation files
2020-07-07 19:40:27 +02:00
tobspr
9505eb8f49 Update local config 2020-07-07 19:34:00 +02:00
Astavie
900128ad32 comments and tabs 2: electric boogaloo 2020-07-07 16:51:40 +02:00
Astavie
e251a25bb7 comments and tabs 2020-07-07 16:42:39 +02:00
Astavie
fbe04c94aa linter, please like me 2020-07-07 16:38:33 +02:00
Astavie
1c2ccd3582 make the linter happy 2020-07-07 16:28:58 +02:00
Astavie
0caaa055aa decimal separator 2020-07-07 16:19:26 +02:00