Commit graph

280 commits

Author SHA1 Message Date
Kazhnuz
cb97c2ceee chore(world): prepate using an external hitbox object 2019-06-22 17:27:36 +02:00
Kazhnuz
2b1bdd0be5 improvement(world): separate bodies from actor management 2019-06-22 17:19:54 +02:00
Kazhnuz
241baad935 fix(world): remove a forgotten debug function 2019-06-21 20:06:58 +02:00
Kazhnuz
408a71434f fix(world): use right camera internal coordinate
Fixes #15 and #17
2019-06-21 18:50:45 +02:00
Kazhnuz
3ced2dbef4 fix(world): separate getting data from the internal and advertised view
Use two functions instead of just one, one showing the actual dimensions 
of the internal "cam" (basically, the whole screen), and one showing the 
advertised displaced camera.

Fixes #16
2019-06-21 18:27:02 +02:00
Kazhnuz
b47e158126 feat(menusystem): add a function to deactivate assets when menu is active 2019-06-16 16:36:39 +02:00
Kazhnuz
a227bbb033 feat(world): add a function to reset world 2019-06-16 16:33:29 +02:00
Kazhnuz
fb35eca0fa feat(menusystem): add a way to deactivate world when activating the menu 2019-06-16 16:21:26 +02:00
Kazhnuz
f7040d1854 feat(world): draw actors according to their depth
It allow us to draw some sprites always over some others.

Fixes #8
2019-06-16 10:24:30 +02:00
Kazhnuz
54b01b0d94 feat(world): add a creationID variable to keep track of actors ID 2019-06-16 10:08:59 +02:00
Kazhnuz
61b3c29f6b improvement(world): only draw visible actors when a camera is active
It'll make the game less laggy. For the moment, no need to only update 
visible actors.

Fixes #14
2019-06-16 10:00:05 +02:00
Kazhnuz
65b0c74a06 feat(world): add a batchActor function activated by a bool in tiled
This way, you can add multiple actors with just one tiled object. It 
also bring better feature parity with Imperium Porcorum.

Fixes #10
2019-06-15 11:50:53 +02:00
Kazhnuz
4c2427bfd6 feat(world): add a drawHUD function to draw the current HUD
It is able to draw everything a player object want directly where it 
should go.

Fixes #3
2019-06-13 22:23:23 +02:00
Kazhnuz
58b8c95d62 feat(actor): add *Start() and *End() functions 2019-06-13 18:39:09 +02:00
Kazhnuz
055ae92eb9 feat(scene): add *Start() and *End() functions.
Make the scene children able to add functions before or after 
everything.
2019-06-13 18:33:29 +02:00
Kazhnuz
e475604c57 gamecore/assets: add activity handling functions 2019-05-30 13:54:39 +02:00
Kazhnuz
af96232d53 gamecore/input: fix two glitches in the key flushing system 2019-05-30 13:49:19 +02:00
Kazhnuz
80ef8b1a65 gamecore/world: add an activity system for the world 2019-05-30 13:37:55 +02:00
Kazhnuz
e73d6804f5 gamecore/scenemanager: draw the world before drawing the scene 2019-05-30 13:37:30 +02:00
Kazhnuz
48aa0a3eab gamecore/scene: put world wrapper inside the scene 2019-05-30 13:27:41 +02:00
Kazhnuz
df4d264c21 gamecore/scenemanager: let the scene manager handle directly the world 2019-05-28 19:31:42 +02:00
Kazhnuz
23f17491ad gamecore/world: make the world registerable directly by itself 2019-05-28 19:28:05 +02:00
Kazhnuz
fb4f438bf9 modules/world: add a generic gfx actor 2019-05-06 20:44:13 +02:00
Kazhnuz
7bdcdc5bfa modules/assets: add getDimensions() to tileset, sprite and animators 2019-05-06 20:43:51 +02:00
Kazhnuz
0ee3220559 modules/world: put the register and initPhysics functions in BaseActor 2019-05-05 21:56:55 +02:00
Kazhnuz
de42087e51 modules/world: init hitbox before loading the parent new() function 2019-05-05 21:55:57 +02:00
Kazhnuz
2344bd5a9a modules/world: put non-hitbox related physics function in baseactor 2019-05-05 21:44:12 +02:00
Kazhnuz
1e42fac57c modules/world: refactor hitbox initialization outside of initPhysics 2019-05-05 21:29:49 +02:00
Kazhnuz
86b1368a6e modules/world: put solidity initialization into baseactor 2019-05-05 21:27:02 +02:00
Kazhnuz
11fcc4cf99 modules/world: refactor movement functions together 2019-05-05 21:25:25 +02:00
Kazhnuz
4b4b8b4e85 modules/world: refactor all cordinate functions together 2019-05-05 21:22:41 +02:00
Kazhnuz
6aa7fd6399 modules/world: use the setBounceFactor function in initPhysics 2019-05-05 21:18:54 +02:00
Kazhnuz
187f0286df modules/world: put the update functions in the baseactor 2019-05-05 21:04:00 +02:00
Kazhnuz
1d26588904 modules/world: put timers and sprites functions in the base actor 2019-05-05 21:01:54 +02:00
Kazhnuz
6225f1fb4e modules/world: put input functions in BaseActor 2019-05-05 20:51:26 +02:00
Kazhnuz
cd62f9c7d1 modules/world: put basic initilisation in baseactor 2019-05-05 20:49:28 +02:00
Kazhnuz
1b5a2e9c6e modules/world: derive the Actor2D from the base actor 2019-05-05 20:30:39 +02:00
Kazhnuz
351b2a970a modules/world: initial draft of the base actor module 2019-05-05 20:30:25 +02:00
Kazhnuz
d1a5bb9d39 modules/world: add a timer system to the actors 2019-05-05 20:13:19 +02:00
Kazhnuz
25a582821f modules/world: only check collision if the object isn't being destroyed 2019-05-05 19:50:33 +02:00
Kazhnuz
dfc71eaebd module/world: add a function to destroy actor 2019-05-05 19:45:57 +02:00
Kazhnuz
146cfbed54 module/world: fix an oops 2019-05-05 19:36:21 +02:00
Kazhnuz
53df3c125c modules/world: add more wrapper around sprites functions 2019-05-05 15:22:54 +02:00
Kazhnuz
8d655f8049 modules/world: make the actors able to clone their sprite 2019-05-05 13:17:43 +02:00
Kazhnuz
174b51acfa modules/world: use checkCollisions to get if an object is on ground 2019-05-05 13:01:25 +02:00
Kazhnuz
b80566b4ec modules/world: add a way to check collisions 2019-05-05 13:01:00 +02:00
Kazhnuz
0d5068fdaa modules/world: add initial way to check if an entity is on ground 2019-05-02 20:10:31 +02:00
Kazhnuz
f04d0c6b4e modules/world: initial gravity system 2019-05-02 19:51:43 +02:00
Kazhnuz
adfa147b72 examples/moveplayer: fix camera2 having the wrong set of coordinate 2019-05-02 18:47:36 +02:00
Kazhnuz
56a269dd57 modules/world: work around Y invertion in the camera system 2019-05-02 18:46:44 +02:00
Kazhnuz
b69ad095ee modules/world: make drawDebugViewBox function related to one view 2019-05-02 18:27:58 +02:00
Kazhnuz
5eed16bac4 modules/world: make local the vx and vy variables 2019-05-02 17:34:35 +02:00
Kazhnuz
eddf66595c modules/world: attach and detach view just once 2019-05-02 17:21:48 +02:00
Kazhnuz
aaf0b1882b modules/world: displace the map according to the view relative position 2019-05-02 16:21:24 +02:00
Kazhnuz
065a67a915 modules/world: add a function to get view relative position 2019-05-02 16:19:59 +02:00
Kazhnuz
f1edd118ec modules/world: simplify limitView() by using utils.math.between() 2019-05-02 16:19:28 +02:00
Kazhnuz
8073951822 utils/math: add a function to return a value somewhere between two numbers 2019-05-02 16:18:12 +02:00
Kazhnuz
c41930fca4 modules/world: automatize multiple character handling 2019-05-01 17:21:38 +02:00
Kazhnuz
dd21878ee8 modules/world: add an initActors function 2019-05-01 16:25:44 +02:00
Kazhnuz
18d75f825c modules/world: separate map loading from level initialization 2019-05-01 14:36:40 +02:00
Kazhnuz
98fb57afaa modules/world: floor the coordinate for sprite drawing 2019-05-01 11:26:15 +02:00
Kazhnuz
257eec8290 modules/assets: add a way to determine ox and oy in tileset metadata 2019-05-01 11:24:41 +02:00
Kazhnuz
0fba67f212 modules/world: handle differently the coordinate system for 2D actors 2019-05-01 11:19:42 +02:00
Kazhnuz
ce2a89b295 modules/world: fix scalling function
actually adding the scaling would be nice.
2019-05-01 11:16:37 +02:00
Kazhnuz
1a669029ea modules/world: add a basic sprite system for the Actor2D 2019-05-01 11:07:53 +02:00
Kazhnuz
d908604dcb module/world: return camera coordinate in the right order 2019-05-01 10:39:19 +02:00
Kazhnuz
a2d38a1ef4 module/world: make sure that the view doesn't go outside the world 2019-05-01 10:27:07 +02:00
Kazhnuz
fd78d083af modules/world: add a way to load objects from tiled 2019-04-29 16:40:44 +02:00
Kazhnuz
00fe87f61d modules/world: invert player 1 and 2 cam in horizontal split mode 2019-04-29 15:10:02 +02:00
Kazhnuz
882f98bf40 modules/world: add a way to link the camera to an actor 2019-04-29 15:03:28 +02:00
Kazhnuz
cc5de7d5ff modules/world: attach and detach the camera when drawing the map 2019-04-29 14:12:34 +02:00
Kazhnuz
1ba74a534d modules/world: scissor the view when attaching the camera 2019-04-29 14:12:04 +02:00
Kazhnuz
bc0b1bb87b modules/world: initial functions to compute camera size and positionning 2019-04-29 13:58:13 +02:00
Kazhnuz
3c498f2d16 modules/world: add a basic view dimension system 2019-04-29 11:39:07 +02:00
Kazhnuz
a046eb5a9c modules/world: add camera system to the world system 2019-04-29 11:21:41 +02:00
Kazhnuz
ffac18d6a5 modules/world: add a way to get camera scale and view 2019-04-29 11:20:59 +02:00
Kazhnuz
06a5192b84 modules/world: fix a typo 2019-04-29 10:47:01 +02:00
Kazhnuz
699efeb2fb modules/world: add a view number limit 2019-04-29 10:42:43 +02:00
Kazhnuz
79ecdc822b modules/world: only attach view to camera if one is requested 2019-04-29 08:45:48 +02:00
Kazhnuz
9c3ef4ce65 modules/world: add initial basic camera system 2019-04-29 08:44:10 +02:00
Kazhnuz
116eb34aa2 modules/assets: initialize tilesets 2019-04-28 13:02:49 +02:00
Kazhnuz
5055f84320 modules/assets: add a basic batch importing system 2019-04-28 13:02:19 +02:00
Kazhnuz
fc34cdc199 modules/world: set default collision mode to slide 2019-04-28 11:15:35 +02:00
Kazhnuz
5777d9463b modules/world: add a way to simply set bounceFactor in the Actor2D 2019-04-28 11:12:54 +02:00
Kazhnuz
6c2b308580 modules/world: add a way to change speed to collision normal 2019-04-28 11:09:55 +02:00
Kazhnuz
0d25dbd839 modules/world: add collision response system 2019-04-28 11:06:07 +02:00
Kazhnuz
c43317bfe2 modules/world: add friction system to Actor2D 2019-04-28 09:31:10 +02:00
Kazhnuz
3ce567b113 modules/world: floor actor2D position when drawing it 2019-04-28 09:22:31 +02:00
Kazhnuz
dcfa657f64 utils: add a simple function to substract a variable to another to zero 2019-04-27 22:04:18 +02:00
Kazhnuz
ea5011642c modules/world: add a basic solidity system
It'll make easier the solidity system and will reserve custom filter to 
specific objects.
2019-04-25 17:54:51 +02:00
Kazhnuz
75eb198450 modules/world: fix an oops in Actor2D 2019-04-22 12:13:42 +02:00
Kazhnuz
90458757e5 modules/world: make hitbox drawing part of actor 2019-04-22 12:13:01 +02:00
Kazhnuz
05f62a6842 modules/world: make the move function return variables 2019-04-22 12:09:28 +02:00
Kazhnuz
a25e178628 modules/world: make speed relative to dt 2019-04-22 12:02:52 +02:00
Kazhnuz
93f710e0b0 modules/world: add filter function 2019-04-22 11:58:00 +02:00
Kazhnuz
42303da317 modules/world: fix movement functions for bump2D
The moveActor function is in bump2D a wrapper for the move function of
bump2D. But this function doesn't handle actual movement.

In order to make things samewise everywhere, let the actor handle actual
movement themselves.
2019-04-22 09:42:33 +02:00
Kazhnuz
eac75df874 modules/world: don't access directly to the actors manager inside worlds 2019-04-22 09:36:29 +02:00
Kazhnuz
ceb28eb445 modules/world: fix loading of baseworld in world2D 2019-04-22 08:35:07 +02:00
Kazhnuz
3ece29ef43 modules/world: add a Bump2D world backend 2019-04-20 22:51:56 +02:00
Kazhnuz
627395c83f modules/menusystem:add batch management functions for sounds 2019-04-20 17:56:18 +02:00
Kazhnuz
4c1acb0afa modules/menusystem: add a function to get sound from scene assetmanager 2019-04-20 17:54:22 +02:00
Kazhnuz
faa12d4ff7 modules/menusystem: link a menusystem to a scene 2019-04-20 17:54:01 +02:00
Kazhnuz
946b446844 modules/menusystem: reset sound activity to "false" in menus 2019-04-20 17:47:57 +02:00
Kazhnuz
51ea3629d0 modules/menusystem: add a function to reset menus' sound state 2019-04-20 17:45:58 +02:00
Kazhnuz
d1c2f8634b modules/menusystem: rename correctly internal navigations sound function 2019-04-20 17:42:04 +02:00
Kazhnuz
f37eaef79a modules/menusystem: add a way to manage menusystem activity 2019-04-15 16:30:45 +02:00
Kazhnuz
802e1a78a3 modules/scenes: fix an oops 2019-04-14 19:46:39 +02:00
Kazhnuz
324a5854b7 core: add a way to get keyboard callbacks from current scene 2019-04-14 19:45:52 +02:00
Kazhnuz
1aef8ad49d core: add a special file for callbacks 2019-04-14 19:24:10 +02:00
Kazhnuz
fdba16e2f2 options: add a way to set an input key 2019-04-14 18:27:24 +02:00
Kazhnuz
a470f53f8f lang: add a way to check language availability 2019-04-14 18:11:31 +02:00
Kazhnuz
cdf088e2a1 options: add the controller to the options manager 2019-04-14 18:08:52 +02:00
Kazhnuz
2affb1c789 lang: remove unused functions 2019-04-14 11:50:28 +02:00
Kazhnuz
b801c59a62 lang: update translation system 2019-04-14 11:48:05 +02:00
Kazhnuz
37b6613c4a lang: adapt lang name functions to the new medata format 2019-04-14 11:25:28 +02:00
Kazhnuz
1e215a99bf lang: improve data handling 2019-04-13 19:00:03 +02:00
Kazhnuz
1c51b35112 options: set default language as current language 2019-04-13 18:58:40 +02:00
Kazhnuz
fb29ae65b3 options: make language loading and changing part of the options 2019-04-13 18:54:07 +02:00
Kazhnuz
59029068f1 lang: return datas instead of directly putting them in self.datas 2019-04-13 18:42:47 +02:00
Kazhnuz
f40d2c9912 lang: add a constant for the translation path 2019-04-13 18:32:54 +02:00
Kazhnuz
113af71896 gamecore: load the lang module 2019-04-13 18:32:27 +02:00
Kazhnuz
a6b1f2da59 modules/menusystem: add a way to easily invalidate widget canvas 2019-04-13 10:44:07 +02:00
Kazhnuz
ae5a001e00 examples/options: export widgets canvas as a real texture
It'll avoid screen change clearing the texture content
2019-04-13 10:39:01 +02:00
Kazhnuz
193e9b6fbf modules/world: add speed variables 2019-04-13 09:40:14 +02:00
Kazhnuz
a81ac5b819 modules/menusystem: add an arbitrary order system to widgets & menus 2019-04-11 18:16:36 +02:00
Kazhnuz
9367bee577 modules/menusystem: add an arbitrary order variable to widgets 2019-04-11 17:31:29 +02:00
Kazhnuz
05a5f8d877 modules/menusystem: add a way to preserve creation order 2019-04-11 17:31:01 +02:00
Kazhnuz
1061e4822f gamecore: better comments and organization 2019-04-11 17:23:39 +02:00
Kazhnuz
65010fae16 loveutils: better comments and organisation 2019-04-11 17:10:28 +02:00
Kazhnuz
33143a0ba3 modules/scene: better comments and organisation 2019-04-11 17:03:53 +02:00
Kazhnuz
ab6475b3cf modules/menusystem: remove deprecated functions and objects 2019-04-11 16:59:58 +02:00
Kazhnuz
c9e3f5b82a modules/menusystem: more code cleanup 2019-04-11 16:58:42 +02:00
Kazhnuz
96f56a7284 modules/menusystem: better comments 2019-04-10 18:01:46 +02:00
Kazhnuz
915b4a2ab8 modules/assets: improve comments and organisation 2019-04-09 18:47:52 +02:00
Kazhnuz
f2680c37f3 modules/world: improve commenting and organisations 2019-04-08 19:58:41 +02:00
Kazhnuz
f30bbc7509 modules/world: better separation of init functions 2019-04-08 19:40:27 +02:00
Kazhnuz
dd1e25969e modules/world: improve keys sending to player object 2019-04-07 22:46:28 +02:00
Kazhnuz
262bf97e67 modules/world: add basic move functions to entities 2019-04-07 18:33:41 +02:00
Kazhnuz
134edf345a scenes: remove "keys" table and replace it by a source table 2019-04-07 17:51:37 +02:00
Kazhnuz
0dce34e33a inputs: make inputs support multiple sources 2019-04-07 17:42:46 +02:00
Kazhnuz
bdd837d4da modules/world: basic player system 2019-04-07 17:15:27 +02:00
Kazhnuz
b74be06d26 modules/world: init fake keys for every actor
Only the "player object" will get the real inputs
2019-04-07 17:03:18 +02:00
Kazhnuz
064d5bd2a8 modules/world: separate actors functions from main functions 2019-04-07 14:06:04 +02:00
Kazhnuz
9a47584feb modules/world: add basic sti support 2019-04-07 14:03:44 +02:00
Kazhnuz
63238c4ec6 modules/world: add a function to add Actor from index 2019-04-07 13:46:08 +02:00
Kazhnuz
3bd7203e59 modules/world: correctly set actor list 2019-04-07 13:43:24 +02:00
Kazhnuz
f9ff7ff122 modules/world: fix typos 2019-04-07 13:36:21 +02:00
Kazhnuz
19cdf6c3ab modules/world: load the actorlist inside the world 2019-04-07 13:35:49 +02:00
Kazhnuz
5365f23c30 modules/world: port all actor functions from IP 2019-04-07 13:31:25 +02:00
Kazhnuz
171ff007e9 modules/world: add comment to make structure more explicit 2019-04-07 13:22:23 +02:00