Commit Graph

281 Commits (main)

Author SHA1 Message Date
thatcosmonaut 629e23e98c start working on preloading generic code paths for JIT 2019-12-16 14:51:12 -08:00
Evan Hemsley f6d93c7579 slight entity manager optimization 2019-12-16 02:17:39 -08:00
Evan Hemsley db8964b54c generating stores at init time 2019-12-15 23:28:02 -08:00
Evan Hemsley f904f566ac 0.18.0 2019-12-06 13:17:03 -08:00
Evan Hemsley 9e25494b2f 0.18.0-preview8 2019-12-06 12:02:16 -08:00
Evan Hemsley 4a2771d6a2 optimize away boxing for messages 2019-12-06 12:01:56 -08:00
Evan Hemsley a29251f3d8 0.18.0-preview7 2019-12-06 00:37:16 -08:00
Evan Hemsley 25b8dc6749 fixes various write priority related bugs 2019-12-06 00:36:54 -08:00
Evan Hemsley bb5173f4e4 0.18.0-preview6 2019-12-05 23:55:38 -08:00
Evan Hemsley 436cd9c5d2 fix write priorities not breing cleared after frame 2019-12-05 23:55:17 -08:00
Evan Hemsley 6ec05a1625 0.18.0-preview5 2019-12-05 23:17:10 -08:00
Evan Hemsley f0ef0fbb21 fix erroneous engine cycle detection 2019-12-05 23:16:47 -08:00
Evan Hemsley ba286f337c 0.18.0-preview4 2019-12-05 22:32:52 -08:00
Evan Hemsley 8218ada6d1 fix emitters not being generated for certain component types +rename component message manager 2019-12-05 22:32:09 -08:00
Evan Hemsley 005405512e remove component messages 2019-12-05 19:55:17 -08:00
Evan Hemsley d4c6b9416d 0.18.0-preview3 2019-12-05 17:50:40 -08:00
Evan Hemsley ec191c69d8 fix issue where components would not be readable by renderers if they were not updated the previous frame 2019-12-05 17:50:05 -08:00
Evan Hemsley 8a676b3e4b hashsets cant set capacity lol 2019-12-05 17:07:54 -08:00
Evan Hemsley c11b5720b7 adding default capacities to avoid lots of initial runtime resizing 2019-12-05 17:07:06 -08:00
Evan Hemsley 65e5ea2ec0 remove Collections.Pooled 2019-12-05 16:23:39 -08:00
Evan Hemsley 23b3241f60 0.18.0-preview2 2019-12-05 16:19:54 -08:00
Evan Hemsley bdac3d8541 fix panic when using runtime HasComponent 2019-12-05 16:19:35 -08:00
Evan Hemsley 2a62adee51 0.18.0-preview1 2019-12-05 16:01:09 -08:00
Evan Hemsley 571310e579 fixed world initialization and draw component removal issues 2019-12-05 16:00:00 -08:00
Evan Hemsley 0293263684 fix component updates 2019-12-05 15:14:28 -08:00
Evan Hemsley 5513402573 removed all component ID stuff 2019-12-05 14:59:55 -08:00
Evan Hemsley a4c3040239 start removing component ID system 2019-12-05 12:10:33 -08:00
Evan Hemsley 506aee8c37 started rewriting managers to not reference interfaces 2019-12-04 20:50:08 -08:00
Evan Hemsley 2a7e97463e forgot to rename SendMessageDelayed on WorldBuilder 2019-11-25 19:37:03 -08:00
Evan Hemsley 1424ae8593 0.17.0 2019-11-25 19:29:46 -08:00
Evan Hemsley d76c991447 0.17.0-preview3 2019-11-22 16:43:31 -08:00
Evan Hemsley 1195f03fb2 Merge branch 'master' of github.com:thatcosmonaut/encompass-cs 2019-11-22 16:43:10 -08:00
Evan Hemsley 038b3aceee SetComponent should not require Reads 2019-11-22 16:43:07 -08:00
thatcosmonaut 3ca8c50e82 0.17.0-preview2 2019-11-22 13:19:00 -08:00
thatcosmonaut f05b7f725d remove time dilation priority system in favor of averaging 2019-11-22 13:14:36 -08:00
thatcosmonaut 3aeb8bf252 0.17.0-preview1 2019-11-22 10:16:19 -08:00
thatcosmonaut d45295ae87 messages with time dilation system 2019-11-21 14:22:10 -08:00
thatcosmonaut fc50bf9b81 implementation of time dilation system for engines 2019-11-21 13:53:33 -08:00
Evan Hemsley 83b180fadb system for changing drawable component layer 2019-11-20 19:26:44 -08:00
Evan Hemsley d53bf043db replace IDrawComponent with IDrawableComponent and remove SetDrawComponent 2019-11-20 19:16:44 -08:00
Evan Hemsley 62dfdb758a remove exposed GUIDs from the API 2019-11-20 19:01:29 -08:00
Evan Hemsley 6579c706c5 0.16.0 2019-11-17 10:55:28 -08:00
Evan Hemsley b8d66e7642 adds Engine.RemoveComponent<TComponent>(Entity) 2019-11-17 10:48:39 -08:00
thatcosmonaut bc66012c3d 0.15.0 2019-11-14 10:57:37 -08:00
Evan Hemsley c994e9d7fe add component reader methods that include entities 2019-11-13 20:08:11 -08:00
thatcosmonaut 3b6d473aeb implement runtime type GetComponent 2019-11-13 13:24:20 -08:00
thatcosmonaut 591cd980d9 runtime type HasComponent 2019-11-13 13:15:43 -08:00
thatcosmonaut 0920b9a8f7 fix bug where multiple messages between same engines caused build crash 2019-11-13 13:05:31 -08:00
Evan Hemsley 1172866c9f 0.14.0 2019-10-24 13:18:05 -07:00
Evan Hemsley 790e36b2d3 graph logic depends on MoonTools.Core.Graph 2019-10-24 13:13:43 -07:00
Evan Hemsley 85f99a565c adds some convenience methods and doc comments 2019-10-24 12:48:36 -07:00
Evan Hemsley 27c3fa1058 explicitly require IDrawComponent interface on SetDrawComponent 2019-09-26 13:34:56 -07:00
Evan Hemsley 3e04e7ad03 0.13.0 2019-09-26 13:29:25 -07:00
Evan Hemsley 5f72bef256 DefaultWritePriority attribute for engines 2019-09-26 13:26:48 -07:00
thatcosmonaut 5872e916ac
Merge pull request #3 from thatcosmonaut/component_write_priority
Component write priority
2019-09-26 12:33:51 -07:00
Evan Hemsley ddbfd492d3 ordered renderer now requires IDrawComponent interface 2019-09-26 12:29:59 -07:00
Evan Hemsley 2ff1396664 0.13.0-rc7 2019-08-22 20:11:05 -07:00
Evan Hemsley 44e01fbfc1 fix another related issue lol 2019-08-22 20:10:41 -07:00
Evan Hemsley 0873761bc7 0.13.0-rc6 2019-08-22 20:08:20 -07:00
Evan Hemsley 5bcde8bb96 fix crash where overwriting an existing component on the same frame as an entity was being destroyed would cause the component to not be destroyed 2019-08-22 20:07:41 -07:00
Evan Hemsley f26cd48afd 0.13.0-rc5 2019-08-22 15:27:52 -07:00
Evan Hemsley fa6958ed95 more helpful ID lookup error messages 2019-08-22 15:20:10 -07:00
Evan Hemsley 0a2cc2527a 0.13.0-rc4 2019-08-21 19:22:14 -07:00
Evan Hemsley dd22c00072 fix crash on multiple write declarations 2019-08-21 19:21:55 -07:00
Evan Hemsley 4a7f65f2f5 more write conflict checks 2019-08-21 17:54:43 -07:00
Evan Hemsley 46d742fe49 0.13.0-rc3 2019-08-21 15:14:53 -07:00
Evan Hemsley 971a663cf9 write priority system and require read declaration for entity lookups by component 2019-08-21 15:13:48 -07:00
thatcosmonaut 9813c260ae started the component write priority system 2019-08-20 19:25:59 -07:00
thatcosmonaut 5429783633 0.13.0-rc2 2019-08-20 15:44:27 -07:00
thatcosmonaut b8d3d706ad fix crash when entity is added and removed same frame 2019-08-20 15:44:01 -07:00
thatcosmonaut 524548ea0e 0.13.0-rc1 2019-08-19 19:07:13 -07:00
thatcosmonaut d084286c83 delayed message system 2019-08-19 19:05:18 -07:00
thatcosmonaut 6a51ceb590 0.12.1-rc9 2019-08-19 18:11:59 -07:00
thatcosmonaut 0447610b23 fix crash when components are added to an entity that will be destroyed 2019-08-19 18:11:15 -07:00
thatcosmonaut 3e7bba1e4c 0.12.1-rc8 2019-08-19 17:39:56 -07:00
thatcosmonaut 1b30f3bd39 caching more info in ComponentMessageManager 2019-08-19 17:30:31 -07:00
Evan Hemsley bea247e896 0.12.1-rc7 2019-08-11 11:47:40 -07:00
Evan Hemsley 8fd2307fbb fix pending component type and id lookups 2019-08-11 11:47:12 -07:00
Evan Hemsley 37a27ee739 0.12.1-rc6 2019-08-11 11:27:25 -07:00
Evan Hemsley 162dbe52a2 fix broken entity ID lookup on pending components 2019-08-11 11:26:31 -07:00
Evan Hemsley ccf243ad2d 0.12.1-rc5 2019-08-10 18:18:12 -07:00
Evan Hemsley 1ce6e0e907 fix issue with reading pending component 2019-08-10 18:17:52 -07:00
Evan Hemsley df27c78e02 0.12.1-rc4 2019-08-10 17:41:54 -07:00
Evan Hemsley c1e206ef49 allow only one component per type per entity 2019-08-10 17:34:00 -07:00
Evan Hemsley 314a064b4e 0.12.1-rc3 2019-08-09 20:04:54 -07:00
Evan Hemsley 583776dd53 remove nested pooled collections 2019-08-09 20:04:11 -07:00
Evan Hemsley bde0c0437e 0.12.1-rc2 2019-08-09 19:29:34 -07:00
Evan Hemsley fc36d0ace7 more hashset pools 2019-08-09 19:29:08 -07:00
Evan Hemsley e808565342 0.12.1-rc1 2019-08-08 22:39:27 -07:00
Evan Hemsley fa7d1eeb77 change sets inside pooled dictionaries to be pooled 2019-08-08 22:38:48 -07:00
Evan Hemsley 5c5c62cfcd 0.12.0 2019-08-05 18:46:55 -07:00
Evan Hemsley e4d1baf170 0.12.0-rc11 2019-08-01 23:11:56 -07:00
Evan Hemsley dbe6cc4f53 accidentally destroyed every pooled dictionary when an entity was destroyed LOOOL 2019-08-01 23:09:41 -07:00
Evan Hemsley 60662dc80b 0.12.0-rc10 2019-08-01 18:59:09 -07:00
Evan Hemsley efb47c2879 adds pooled dictionary to componentmanager lookup 2019-08-01 18:56:52 -07:00
Evan Hemsley 062b31dfb8 adds pooled dictionary to component message manager 2019-08-01 18:53:44 -07:00
Evan Hemsley 26aeb46cb8 todo note on componentmessagemanager 2019-08-01 17:34:54 -07:00
Evan Hemsley 6dbc82c5fc 0.12.0-rc9 2019-08-01 17:05:53 -07:00
Evan Hemsley 8b9a778bfd fix bug when doing pending and existing read 2019-08-01 17:05:36 -07:00
Evan Hemsley 8097c4433b 0.12.0-rc8 2019-08-01 16:44:58 -07:00
Evan Hemsley 5e2ae80518 optimize componentmanager and renderer 2019-08-01 16:44:29 -07:00
Evan Hemsley d86c002305 optimize component message system 2019-08-01 16:24:57 -07:00
Evan Hemsley ec3b0df585 rework EntityRenderer to OrderedRenderer 2019-08-01 15:06:19 -07:00
Evan Hemsley 2fd054d8e0 0.12.0-rc5 2019-07-31 12:08:16 -07:00
Evan Hemsley ef7847ecf0 entity and component type index 2019-07-31 12:07:13 -07:00
Evan Hemsley 186ea66c7c 0.12.0-rc4 2019-07-31 10:48:50 -07:00
Evan Hemsley d6c84b950a remove activation concept from components and entities 2019-07-31 10:35:17 -07:00
Evan Hemsley 71e5d286ed 0.11.1 2019-07-28 22:28:35 -07:00
Evan Hemsley bd7c316ea8 message improvements 2019-07-28 22:27:50 -07:00
Evan Hemsley ed965d43a3 unparameterized SendMessage 2019-07-28 22:25:34 -07:00
Evan Hemsley 27c5a9e73e 0.11.0 2019-07-25 13:15:36 -07:00
Evan Hemsley 3d3301dfe9 0.11.0-rc7 2019-07-23 10:18:59 -07:00
Evan Hemsley c7cae0d9d1 bring back ReadsPending attribute 2019-07-23 10:17:53 -07:00
Evan Hemsley c6192d5b4c 0.11.0-rc6 2019-07-22 22:53:18 -07:00
Evan Hemsley 41c81a0aa0 addcomponent optionally sends pending component message 2019-07-22 22:52:51 -07:00
Evan Hemsley 7c6b77c7ab 0.11.0-rc5 2019-07-20 14:14:24 -07:00
Evan Hemsley faefa3d687 better RepeatUpdateComponentException message 2019-07-20 14:13:11 -07:00
Evan Hemsley fd8a0b1b00 read existing or pending components automagically based on attribute declarations 2019-07-20 14:10:06 -07:00
thatcosmonaut 911f766cfa 0.11.0-rc4 2019-07-19 17:50:36 -07:00
thatcosmonaut fea5c57860 update engine generator 2019-07-19 17:50:13 -07:00
thatcosmonaut 573657fd39 0.11.0-rc3 2019-07-19 16:16:54 -07:00
thatcosmonaut 89154f21d7 introduce concept of pending component 2019-07-19 16:15:48 -07:00
Evan Hemsley 1845d5f766 read new and existing component system 2019-07-19 12:47:17 -07:00
Evan Hemsley 80effc06dc fix componentmessage self-cycle and rename WorldBuilder.EmitMessage 2019-07-18 21:07:26 -07:00
Evan Hemsley 42a9934d65 0.11.0-rc2 2019-07-18 20:31:49 -07:00
Evan Hemsley 0639eef118 rename EmitMessage to SendMessage and add special case for component self-cycle 2019-07-18 20:31:31 -07:00
Evan Hemsley 44614c796a 0.11.0-rc1 2019-07-18 18:24:03 -07:00
Evan Hemsley c8c5a8c7c4 change attributes 2019-07-18 18:20:38 -07:00
Evan Hemsley 3deff94dfe all component reads use ComponentMessage now 2019-07-18 17:50:38 -07:00
thatcosmonaut a42123f58d the big ComponentMessage rework 2019-07-18 14:02:57 -07:00
thatcosmonaut 0b2ef55634 reverse lookup optimization 2019-07-17 18:56:02 -07:00
thatcosmonaut a62153730f component updates at end of frame 2019-07-17 18:53:31 -07:00
thatcosmonaut ca82fa82cf 0.10.0 2019-07-17 18:18:12 -07:00
thatcosmonaut f960712f57 component writes moved back to end of frame 2019-07-17 18:12:29 -07:00
Evan Hemsley 1016f05d42 0.9.1 2019-07-17 13:16:44 -07:00
Evan Hemsley 949c3aa26d adds read check to HasComponent and HasComponent and SomeComponent to Renderer 2019-07-17 13:15:15 -07:00
Evan Hemsley 4c82337362 0.9.0 2019-07-17 12:15:34 -07:00
Evan Hemsley 918621db73 adds SomeComponent to Engine and renames Some to SomeMessage 2019-07-17 11:46:54 -07:00
Evan Hemsley c344ab0c67 project structure cleanup 2019-07-17 11:34:29 -07:00
Evan Hemsley d5a196b298 read write lookups use hashset 2019-07-17 11:31:18 -07:00
Evan Hemsley 64f6e13216 move all methods off of Entity 2019-07-17 11:24:21 -07:00
Evan Hemsley 9b58473ae8 engines must declare component reads + validation for Reads and Writes arguments 2019-07-16 11:17:07 -07:00
Evan Hemsley 7ab512e522 started reworking component mutation 2019-07-16 09:47:58 -07:00
Evan Hemsley ff21ebcee0 0.8.1 2019-07-14 20:45:26 -07:00
Evan Hemsley 016e2c5612 change entities marked for destroy list to a hashset 2019-07-14 20:43:24 -07:00
Evan Hemsley 0f44d6c544 0.8.0 2019-07-12 21:48:30 -07:00
Evan Hemsley ff3be9636b adds GetEntityIDByComponentID and GetEntityByComponentID to Renderer 2019-07-12 21:48:08 -07:00
Evan Hemsley c946251302 0.7.0 2019-07-12 17:40:00 -07:00
Evan Hemsley 2d929e4665 adds EntityExists method + fixes crash when destroying an entity that has no components 2019-07-12 17:37:31 -07:00
Evan Hemsley 5ec8c4da82 0.6.3 2019-07-10 18:23:10 -07:00