Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Bullet physics and transmit new datestamp on login

  • Loading branch information...
commit 0e28274fdf3b9ed51715ac9bd73021b9992dffd0 1 parent 8b4dca5
croxis authored
930 ITF.sublime-workspace
@@ -3,27 +3,151 @@
3 3 {
4 4 "selected_items":
5 5 [
  6 + [
  7 + "sol",
  8 + "SolarSystemSystem (class)"
  9 + ],
  10 + [
  11 + "ge",
  12 + "getSystem (function)"
  13 + ],
  14 + [
  15 + "Physics",
  16 + "PhysicsSystem (global, class)"
  17 + ],
  18 + [
  19 + "comp",
  20 + "component (local, instance)"
  21 + ],
  22 + [
  23 + "act",
  24 + "activeConnections"
  25 + ],
  26 + [
  27 + "l",
  28 + "lastAck (attribute, instance)"
  29 + ],
  30 + [
  31 + "getC",
  32 + "getConnection"
  33 + ],
  34 + [
  35 + "my",
  36 + "myPyDatagram (local, instance)"
  37 + ],
  38 + [
  39 + "send",
  40 + "sendLogin (attribute, function)"
  41 + ],
  42 + [
  43 + "L",
  44 + "LOGIN_ACCEPT (variable)"
  45 + ],
  46 + [
  47 + "packe",
  48 + "packetCount (attribute, instance)"
  49 + ],
  50 + [
  51 + "user",
  52 + "userName (local, instance)"
  53 + ],
  54 + [
  55 + "add",
  56 + "addComponent"
  57 + ],
  58 + [
  59 + "Acc",
  60 + "AccountComponent (global, class)"
  61 + ],
  62 + [
  63 + "cre",
  64 + "createEntity"
  65 + ],
  66 + [
  67 + "Solar",
  68 + "SolarSystemSystem"
  69 + ],
  70 + [
  71 + "solar",
  72 + "solarSystemRoot (local, instance)"
  73 + ],
  74 + [
  75 + "sola",
  76 + "solarDB (global, instance)"
  77 + ]
6 78 ]
7 79 },
8 80 "buffers":
9 81 [
10 82 {
  83 + "file": "serverNet.py",
  84 + "settings":
  85 + {
  86 + "buffer_size": 5908,
  87 + "line_ending": "Unix"
  88 + }
  89 + },
  90 + {
  91 + "file": "protocol.py",
  92 + "settings":
  93 + {
  94 + "buffer_size": 842,
  95 + "line_ending": "Unix"
  96 + }
  97 + },
  98 + {
11 99 "file": "main.py",
12 100 "settings":
13 101 {
14   - "buffer_size": 0,
  102 + "buffer_size": 5103,
  103 + "line_ending": "Unix"
  104 + }
  105 + },
  106 + {
  107 + "file": "universals.py",
  108 + "settings":
  109 + {
  110 + "buffer_size": 484,
  111 + "line_ending": "Unix"
  112 + }
  113 + },
  114 + {
  115 + "file": "solarSystem.py",
  116 + "settings":
  117 + {
  118 + "buffer_size": 4416,
  119 + "line_ending": "Unix"
  120 + }
  121 + },
  122 + {
  123 + "file": "ships.py",
  124 + "settings":
  125 + {
  126 + "buffer_size": 457,
  127 + "line_ending": "Unix"
  128 + }
  129 + },
  130 + {
  131 + "file": "client.py",
  132 + "settings":
  133 + {
  134 + "buffer_size": 3555,
15 135 "line_ending": "Unix"
16 136 }
17 137 }
18 138 ],
19   - "build_system": "Packages/Python/Python.sublime-build",
  139 + "build_system": "Packages/User/ITF Server Client.sublime-build",
20 140 "command_palette":
21 141 {
22   - "height": 0.0,
  142 + "height": 285.0,
23 143 "selected_items":
24 144 [
  145 + [
  146 + "Package Control: ",
  147 + "Package Control: Remove Package"
  148 + ]
25 149 ],
26   - "width": 0.0
  150 + "width": 602.0
27 151 },
28 152 "console":
29 153 {
@@ -40,7 +164,19 @@
40 164 },
41 165 "file_history":
42 166 [
43   - "/home/croxis/.config/sublime-text-2/Packages/Default/Preferences.sublime-settings"
  167 + "/home/croxis/.config/sublime-text-2/Packages/User/ITF Server Client.sublime-build",
  168 + "/home/croxis/src/ITF/globals.py",
  169 + "/home/croxis/.config/sublime-text-2/Packages/Pylinter/Pylinter.sublime-settings",
  170 + "/home/croxis/.config/sublime-text-2/Packages/User/Pylinter.sublime-settings",
  171 + "/home/croxis/src/ITF/ITF.sublime-project",
  172 + "/home/croxis/src/SandBox/__init__.py",
  173 + "/home/croxis/src/ITF/solarsystem.yaml",
  174 + "/home/croxis/.config/sublime-text-2/Packages/SublimeCodeIntel/Base File.sublime-settings",
  175 + "/home/croxis/.config/sublime-text-2/Packages/Default/Preferences.sublime-settings",
  176 + "/home/croxis/.config/sublime-text-2/Packages/User/Python.sublime-settings",
  177 + "/home/croxis/.config/sublime-text-2/Packages/User/SideBarGit.sublime-settings",
  178 + "/home/croxis/.config/sublime-text-2/Packages/SideBarGit/SideBarGit.sublime-settings",
  179 + "/home/croxis/.config/sublime-text-2/Packages/User/Preferences.sublime-settings"
44 180 ],
45 181 "find":
46 182 {
@@ -51,13 +187,16 @@
51 187 "height": 0.0,
52 188 "where_history":
53 189 [
  190 + "*.py"
54 191 ]
55 192 },
56 193 "find_state":
57 194 {
58   - "case_sensitive": false,
  195 + "case_sensitive": true,
59 196 "find_history":
60 197 [
  198 + "SandBox",
  199 + "NodePath"
61 200 ],
62 201 "highlight": true,
63 202 "in_selection": false,
@@ -65,6 +204,7 @@
65 204 "regex": false,
66 205 "replace_history":
67 206 [
  207 + "sandbox"
68 208 ],
69 209 "reverse": false,
70 210 "show_context": true,
@@ -75,15 +215,344 @@
75 215 "groups":
76 216 [
77 217 {
78   - "selected": 0,
  218 + "selected": 4,
79 219 "sheets":
80 220 [
81 221 {
82 222 "buffer": 0,
  223 + "file": "serverNet.py",
  224 + "settings":
  225 + {
  226 + "buffer_size": 5908,
  227 + "regions":
  228 + {
  229 + },
  230 + "selection":
  231 + [
  232 + [
  233 + 2523,
  234 + 2523
  235 + ]
  236 + ],
  237 + "settings":
  238 + {
  239 + "annotations":
  240 + [
  241 + "TODO",
  242 + "README",
  243 + "FIXME"
  244 + ],
  245 + "csslint_options":
  246 + {
  247 + "adjoining-classes": "warning",
  248 + "box-model": true,
  249 + "box-sizing": "warning",
  250 + "compatible-vendor-prefixes": "warning",
  251 + "display-property-grouping": true,
  252 + "duplicate-background-images": "warning",
  253 + "duplicate-properties": true,
  254 + "empty-rules": true,
  255 + "errors": true,
  256 + "fallback-colors": "warning",
  257 + "floats": "warning",
  258 + "font-faces": "warning",
  259 + "font-sizes": "warning",
  260 + "gradients": "warning",
  261 + "ids": "warning",
  262 + "import": "warning",
  263 + "important": "warning",
  264 + "known-properties": true,
  265 + "outline-none": "warning",
  266 + "overqualified-elements": "warning",
  267 + "qualified-headings": "warning",
  268 + "regex-selectors": "warning",
  269 + "rules-count": "warning",
  270 + "shorthand": "warning",
  271 + "text-indent": "warning",
  272 + "unique-headings": "warning",
  273 + "universal-selector": "warning",
  274 + "vendor-prefix": true,
  275 + "zero-units": "warning"
  276 + },
  277 + "gjslint_ignore":
  278 + [
  279 + 110
  280 + ],
  281 + "gjslint_options":
  282 + [
  283 + ],
  284 + "javascript_linter": "jshint",
  285 + "jshint_options":
  286 + {
  287 + "browser": true,
  288 + "evil": true,
  289 + "regexdash": true,
  290 + "sub": true,
  291 + "trailing": true,
  292 + "wsh": true
  293 + },
  294 + "pep8_ignore":
  295 + [
  296 + "E501"
  297 + ],
  298 + "perl_linter": "perlcritic",
  299 + "pyflakes_ignore":
  300 + [
  301 + ],
  302 + "pyflakes_ignore_import_*": true,
  303 + "sublimelinter": true,
  304 + "sublimelinter_delay": 0,
  305 + "sublimelinter_disable":
  306 + [
  307 + ],
  308 + "sublimelinter_executable_map":
  309 + {
  310 + },
  311 + "sublimelinter_fill_outlines": false,
  312 + "sublimelinter_gutter_marks": false,
  313 + "sublimelinter_notes": false,
  314 + "sublimelinter_objj_check_ascii": false,
  315 + "sublimelinter_popup_errors_on_save": false,
  316 + "sublimelinter_syntax_map":
  317 + {
  318 + "Python Django": "python"
  319 + },
  320 + "sublimelinter_wrap_find": true,
  321 + "syntax": "Packages/Python/Python.tmLanguage",
  322 + "tab_size": 4,
  323 + "translate_tabs_to_spaces": true
  324 + },
  325 + "translation.x": 0.0,
  326 + "translation.y": 0.0,
  327 + "zoom_level": 1.0
  328 + },
  329 + "type": "text"
  330 + },
  331 + {
  332 + "buffer": 1,
  333 + "file": "protocol.py",
  334 + "settings":
  335 + {
  336 + "buffer_size": 842,
  337 + "regions":
  338 + {
  339 + },
  340 + "selection":
  341 + [
  342 + [
  343 + 824,
  344 + 824
  345 + ]
  346 + ],
  347 + "settings":
  348 + {
  349 + "annotations":
  350 + [
  351 + "TODO",
  352 + "README",
  353 + "FIXME"
  354 + ],
  355 + "csslint_options":
  356 + {
  357 + "adjoining-classes": "warning",
  358 + "box-model": true,
  359 + "box-sizing": "warning",
  360 + "compatible-vendor-prefixes": "warning",
  361 + "display-property-grouping": true,
  362 + "duplicate-background-images": "warning",
  363 + "duplicate-properties": true,
  364 + "empty-rules": true,
  365 + "errors": true,
  366 + "fallback-colors": "warning",
  367 + "floats": "warning",
  368 + "font-faces": "warning",
  369 + "font-sizes": "warning",
  370 + "gradients": "warning",
  371 + "ids": "warning",
  372 + "import": "warning",
  373 + "important": "warning",
  374 + "known-properties": true,
  375 + "outline-none": "warning",
  376 + "overqualified-elements": "warning",
  377 + "qualified-headings": "warning",
  378 + "regex-selectors": "warning",
  379 + "rules-count": "warning",
  380 + "shorthand": "warning",
  381 + "text-indent": "warning",
  382 + "unique-headings": "warning",
  383 + "universal-selector": "warning",
  384 + "vendor-prefix": true,
  385 + "zero-units": "warning"
  386 + },
  387 + "gjslint_ignore":
  388 + [
  389 + 110
  390 + ],
  391 + "gjslint_options":
  392 + [
  393 + ],
  394 + "javascript_linter": "jshint",
  395 + "jshint_options":
  396 + {
  397 + "browser": true,
  398 + "evil": true,
  399 + "regexdash": true,
  400 + "sub": true,
  401 + "trailing": true,
  402 + "wsh": true
  403 + },
  404 + "pep8_ignore":
  405 + [
  406 + "E501"
  407 + ],
  408 + "perl_linter": "perlcritic",
  409 + "pyflakes_ignore":
  410 + [
  411 + ],
  412 + "pyflakes_ignore_import_*": true,
  413 + "sublimelinter": true,
  414 + "sublimelinter_delay": 0,
  415 + "sublimelinter_disable":
  416 + [
  417 + ],
  418 + "sublimelinter_executable_map":
  419 + {
  420 + },
  421 + "sublimelinter_fill_outlines": false,
  422 + "sublimelinter_gutter_marks": false,
  423 + "sublimelinter_notes": false,
  424 + "sublimelinter_objj_check_ascii": false,
  425 + "sublimelinter_popup_errors_on_save": false,
  426 + "sublimelinter_syntax_map":
  427 + {
  428 + "Python Django": "python"
  429 + },
  430 + "sublimelinter_wrap_find": true,
  431 + "syntax": "Packages/Python/Python.tmLanguage"
  432 + },
  433 + "translation.x": 0.0,
  434 + "translation.y": 57.0,
  435 + "zoom_level": 1.0
  436 + },
  437 + "type": "text"
  438 + },
  439 + {
  440 + "buffer": 2,
83 441 "file": "main.py",
84 442 "settings":
85 443 {
86   - "buffer_size": 0,
  444 + "buffer_size": 5103,
  445 + "regions":
  446 + {
  447 + },
  448 + "selection":
  449 + [
  450 + [
  451 + 3291,
  452 + 3291
  453 + ]
  454 + ],
  455 + "settings":
  456 + {
  457 + "annotations":
  458 + [
  459 + "TODO",
  460 + "README",
  461 + "FIXME"
  462 + ],
  463 + "csslint_options":
  464 + {
  465 + "adjoining-classes": "warning",
  466 + "box-model": true,
  467 + "box-sizing": "warning",
  468 + "compatible-vendor-prefixes": "warning",
  469 + "display-property-grouping": true,
  470 + "duplicate-background-images": "warning",
  471 + "duplicate-properties": true,
  472 + "empty-rules": true,
  473 + "errors": true,
  474 + "fallback-colors": "warning",
  475 + "floats": "warning",
  476 + "font-faces": "warning",
  477 + "font-sizes": "warning",
  478 + "gradients": "warning",
  479 + "ids": "warning",
  480 + "import": "warning",
  481 + "important": "warning",
  482 + "known-properties": true,
  483 + "outline-none": "warning",
  484 + "overqualified-elements": "warning",
  485 + "qualified-headings": "warning",
  486 + "regex-selectors": "warning",
  487 + "rules-count": "warning",
  488 + "shorthand": "warning",
  489 + "text-indent": "warning",
  490 + "unique-headings": "warning",
  491 + "universal-selector": "warning",
  492 + "vendor-prefix": true,
  493 + "zero-units": "warning"
  494 + },
  495 + "gjslint_ignore":
  496 + [
  497 + 110
  498 + ],
  499 + "gjslint_options":
  500 + [
  501 + ],
  502 + "javascript_linter": "jshint",
  503 + "jshint_options":
  504 + {
  505 + "browser": true,
  506 + "evil": true,
  507 + "regexdash": true,
  508 + "sub": true,
  509 + "trailing": true,
  510 + "wsh": true
  511 + },
  512 + "pep8_ignore":
  513 + [
  514 + "E501"
  515 + ],
  516 + "perl_linter": "perlcritic",
  517 + "pyflakes_ignore":
  518 + [
  519 + ],
  520 + "pyflakes_ignore_import_*": true,
  521 + "spell_check": true,
  522 + "sublimelinter": true,
  523 + "sublimelinter_delay": 0,
  524 + "sublimelinter_disable":
  525 + [
  526 + ],
  527 + "sublimelinter_executable_map":
  528 + {
  529 + },
  530 + "sublimelinter_fill_outlines": false,
  531 + "sublimelinter_gutter_marks": false,
  532 + "sublimelinter_notes": false,
  533 + "sublimelinter_objj_check_ascii": false,
  534 + "sublimelinter_popup_errors_on_save": false,
  535 + "sublimelinter_syntax_map":
  536 + {
  537 + "Python Django": "python"
  538 + },
  539 + "sublimelinter_wrap_find": true,
  540 + "syntax": "Packages/Python/Python.tmLanguage",
  541 + "tab_size": 4,
  542 + "translate_tabs_to_spaces": true
  543 + },
  544 + "translation.x": 81.0,
  545 + "translation.y": 2442.0,
  546 + "zoom_level": 1.0
  547 + },
  548 + "type": "text"
  549 + },
  550 + {
  551 + "buffer": 3,
  552 + "file": "universals.py",
  553 + "settings":
  554 + {
  555 + "buffer_size": 484,
87 556 "regions":
88 557 {
89 558 },
@@ -96,6 +565,88 @@
96 565 ],
97 566 "settings":
98 567 {
  568 + "annotations":
  569 + [
  570 + "TODO",
  571 + "README",
  572 + "FIXME"
  573 + ],
  574 + "csslint_options":
  575 + {
  576 + "adjoining-classes": "warning",
  577 + "box-model": true,
  578 + "box-sizing": "warning",
  579 + "compatible-vendor-prefixes": "warning",
  580 + "display-property-grouping": true,
  581 + "duplicate-background-images": "warning",
  582 + "duplicate-properties": true,
  583 + "empty-rules": true,
  584 + "errors": true,
  585 + "fallback-colors": "warning",
  586 + "floats": "warning",
  587 + "font-faces": "warning",
  588 + "font-sizes": "warning",
  589 + "gradients": "warning",
  590 + "ids": "warning",
  591 + "import": "warning",
  592 + "important": "warning",
  593 + "known-properties": true,
  594 + "outline-none": "warning",
  595 + "overqualified-elements": "warning",
  596 + "qualified-headings": "warning",
  597 + "regex-selectors": "warning",
  598 + "rules-count": "warning",
  599 + "shorthand": "warning",
  600 + "text-indent": "warning",
  601 + "unique-headings": "warning",
  602 + "universal-selector": "warning",
  603 + "vendor-prefix": true,
  604 + "zero-units": "warning"
  605 + },
  606 + "gjslint_ignore":
  607 + [
  608 + 110
  609 + ],
  610 + "gjslint_options":
  611 + [
  612 + ],
  613 + "javascript_linter": "jshint",
  614 + "jshint_options":
  615 + {
  616 + "browser": true,
  617 + "evil": true,
  618 + "regexdash": true,
  619 + "sub": true,
  620 + "trailing": true,
  621 + "wsh": true
  622 + },
  623 + "pep8_ignore":
  624 + [
  625 + "E501"
  626 + ],
  627 + "perl_linter": "perlcritic",
  628 + "pyflakes_ignore":
  629 + [
  630 + ],
  631 + "pyflakes_ignore_import_*": true,
  632 + "sublimelinter": true,
  633 + "sublimelinter_delay": 0,
  634 + "sublimelinter_disable":
  635 + [
  636 + ],
  637 + "sublimelinter_executable_map":
  638 + {
  639 + },
  640 + "sublimelinter_fill_outlines": false,
  641 + "sublimelinter_gutter_marks": false,
  642 + "sublimelinter_notes": false,
  643 + "sublimelinter_objj_check_ascii": false,
  644 + "sublimelinter_popup_errors_on_save": false,
  645 + "sublimelinter_syntax_map":
  646 + {
  647 + "Python Django": "python"
  648 + },
  649 + "sublimelinter_wrap_find": true,
99 650 "syntax": "Packages/Python/Python.tmLanguage"
100 651 },
101 652 "translation.x": 0.0,
@@ -103,6 +654,342 @@
103 654 "zoom_level": 1.0
104 655 },
105 656 "type": "text"
  657 + },
  658 + {
  659 + "buffer": 4,
  660 + "file": "solarSystem.py",
  661 + "settings":
  662 + {
  663 + "buffer_size": 4416,
  664 + "regions":
  665 + {
  666 + },
  667 + "selection":
  668 + [
  669 + [
  670 + 4416,
  671 + 4416
  672 + ]
  673 + ],
  674 + "settings":
  675 + {
  676 + "annotations":
  677 + [
  678 + "TODO",
  679 + "README",
  680 + "FIXME"
  681 + ],
  682 + "csslint_options":
  683 + {
  684 + "adjoining-classes": "warning",
  685 + "box-model": true,
  686 + "box-sizing": "warning",
  687 + "compatible-vendor-prefixes": "warning",
  688 + "display-property-grouping": true,
  689 + "duplicate-background-images": "warning",
  690 + "duplicate-properties": true,
  691 + "empty-rules": true,
  692 + "errors": true,
  693 + "fallback-colors": "warning",
  694 + "floats": "warning",
  695 + "font-faces": "warning",
  696 + "font-sizes": "warning",
  697 + "gradients": "warning",
  698 + "ids": "warning",
  699 + "import": "warning",
  700 + "important": "warning",
  701 + "known-properties": true,
  702 + "outline-none": "warning",
  703 + "overqualified-elements": "warning",
  704 + "qualified-headings": "warning",
  705 + "regex-selectors": "warning",
  706 + "rules-count": "warning",
  707 + "shorthand": "warning",
  708 + "text-indent": "warning",
  709 + "unique-headings": "warning",
  710 + "universal-selector": "warning",
  711 + "vendor-prefix": true,
  712 + "zero-units": "warning"
  713 + },
  714 + "gjslint_ignore":
  715 + [
  716 + 110
  717 + ],
  718 + "gjslint_options":
  719 + [
  720 + ],
  721 + "javascript_linter": "jshint",
  722 + "jshint_options":
  723 + {
  724 + "browser": true,
  725 + "evil": true,
  726 + "regexdash": true,
  727 + "sub": true,
  728 + "trailing": true,
  729 + "wsh": true
  730 + },
  731 + "pep8_ignore":
  732 + [
  733 + "E501"
  734 + ],
  735 + "perl_linter": "perlcritic",
  736 + "pyflakes_ignore":
  737 + [
  738 + ],
  739 + "pyflakes_ignore_import_*": true,
  740 + "sublimelinter": true,
  741 + "sublimelinter_delay": 0,
  742 + "sublimelinter_disable":
  743 + [
  744 + ],
  745 + "sublimelinter_executable_map":
  746 + {
  747 + },
  748 + "sublimelinter_fill_outlines": false,
  749 + "sublimelinter_gutter_marks": false,
  750 + "sublimelinter_notes": false,
  751 + "sublimelinter_objj_check_ascii": false,
  752 + "sublimelinter_popup_errors_on_save": false,
  753 + "sublimelinter_syntax_map":
  754 + {
  755 + "Python Django": "python"
  756 + },
  757 + "sublimelinter_wrap_find": true,
  758 + "syntax": "Packages/Python/Python.tmLanguage",
  759 + "tab_size": 4,
  760 + "translate_tabs_to_spaces": true
  761 + },
  762 + "translation.x": 0.0,
  763 + "translation.y": 0.0,
  764 + "zoom_level": 1.0
  765 + },
  766 + "type": "text"
  767 + },
  768 + {
  769 + "buffer": 5,
  770 + "file": "ships.py",
  771 + "settings":
  772 + {
  773 + "buffer_size": 457,
  774 + "regions":
  775 + {
  776 + },
  777 + "selection":
  778 + [
  779 + [
  780 + 111,
  781 + 111
  782 + ]
  783 + ],
  784 + "settings":
  785 + {
  786 + "annotations":
  787 + [
  788 + "TODO",
  789 + "README",
  790 + "FIXME"
  791 + ],
  792 + "csslint_options":
  793 + {
  794 + "adjoining-classes": "warning",
  795 + "box-model": true,
  796 + "box-sizing": "warning",
  797 + "compatible-vendor-prefixes": "warning",
  798 + "display-property-grouping": true,
  799 + "duplicate-background-images": "warning",
  800 + "duplicate-properties": true,
  801 + "empty-rules": true,
  802 + "errors": true,
  803 + "fallback-colors": "warning",
  804 + "floats": "warning",
  805 + "font-faces": "warning",
  806 + "font-sizes": "warning",
  807 + "gradients": "warning",
  808 + "ids": "warning",
  809 + "import": "warning",
  810 + "important": "warning",
  811 + "known-properties": true,
  812 + "outline-none": "warning",
  813 + "overqualified-elements": "warning",
  814 + "qualified-headings": "warning",
  815 + "regex-selectors": "warning",
  816 + "rules-count": "warning",
  817 + "shorthand": "warning",
  818 + "text-indent": "warning",
  819 + "unique-headings": "warning",
  820 + "universal-selector": "warning",
  821 + "vendor-prefix": true,
  822 + "zero-units": "warning"
  823 + },
  824 + "gjslint_ignore":
  825 + [
  826 + 110
  827 + ],
  828 + "gjslint_options":
  829 + [
  830 + ],
  831 + "javascript_linter": "jshint",
  832 + "jshint_options":
  833 + {
  834 + "browser": true,
  835 + "evil": true,
  836 + "regexdash": true,
  837 + "sub": true,
  838 + "trailing": true,
  839 + "wsh": true
  840 + },
  841 + "pep8_ignore":
  842 + [
  843 + "E501"
  844 + ],
  845 + "perl_linter": "perlcritic",
  846 + "pyflakes_ignore":
  847 + [
  848 + ],
  849 + "pyflakes_ignore_import_*": true,
  850 + "sublimelinter": true,
  851 + "sublimelinter_delay": 0,
  852 + "sublimelinter_disable":
  853 + [
  854 + ],
  855 + "sublimelinter_executable_map":
  856 + {
  857 + },
  858 + "sublimelinter_fill_outlines": false,
  859 + "sublimelinter_gutter_marks": false,
  860 + "sublimelinter_notes": false,
  861 + "sublimelinter_objj_check_ascii": false,
  862 + "sublimelinter_popup_errors_on_save": false,
  863 + "sublimelinter_syntax_map":
  864 + {
  865 + "Python Django": "python"
  866 + },
  867 + "sublimelinter_wrap_find": true,
  868 + "syntax": "Packages/Python/Python.tmLanguage",
  869 + "tab_size": 4,
  870 + "translate_tabs_to_spaces": true
  871 + },
  872 + "translation.x": 0.0,
  873 + "translation.y": 0.0,
  874 + "zoom_level": 1.0
  875 + },
  876 + "type": "text"
  877 + }
  878 + ]
  879 + },
  880 + {
  881 + "selected": 0,
  882 + "sheets":
  883 + [
  884 + {
  885 + "buffer": 6,
  886 + "file": "client.py",
  887 + "settings":
  888 + {
  889 + "buffer_size": 3555,
  890 + "regions":
  891 + {
  892 + },
  893 + "selection":
  894 + [
  895 + [
  896 + 2332,
  897 + 2332
  898 + ]
  899 + ],
  900 + "settings":
  901 + {
  902 + "annotations":
  903 + [
  904 + "TODO",
  905 + "README",
  906 + "FIXME"
  907 + ],
  908 + "csslint_options":
  909 + {
  910 + "adjoining-classes": "warning",
  911 + "box-model": true,
  912 + "box-sizing": "warning",
  913 + "compatible-vendor-prefixes": "warning",
  914 + "display-property-grouping": true,
  915 + "duplicate-background-images": "warning",
  916 + "duplicate-properties": true,
  917 + "empty-rules": true,
  918 + "errors": true,
  919 + "fallback-colors": "warning",
  920 + "floats": "warning",
  921 + "font-faces": "warning",
  922 + "font-sizes": "warning",
  923 + "gradients": "warning",
  924 + "ids": "warning",
  925 + "import": "warning",
  926 + "important": "warning",
  927 + "known-properties": true,
  928 + "outline-none": "warning",
  929 + "overqualified-elements": "warning",
  930 + "qualified-headings": "warning",
  931 + "regex-selectors": "warning",
  932 + "rules-count": "warning",
  933 + "shorthand": "warning",
  934 + "text-indent": "warning",
  935 + "unique-headings": "warning",
  936 + "universal-selector": "warning",
  937 + "vendor-prefix": true,
  938 + "zero-units": "warning"
  939 + },
  940 + "gjslint_ignore":
  941 + [
  942 + 110
  943 + ],
  944 + "gjslint_options":
  945 + [
  946 + ],
  947 + "javascript_linter": "jshint",
  948 + "jshint_options":
  949 + {
  950 + "browser": true,
  951 + "evil": true,
  952 + "regexdash": true,
  953 + "sub": true,
  954 + "trailing": true,
  955 + "wsh": true
  956 + },
  957 + "pep8_ignore":
  958 + [
  959 + "E501"
  960 + ],
  961 + "perl_linter": "perlcritic",
  962 + "pyflakes_ignore":
  963 + [
  964 + ],
  965 + "pyflakes_ignore_import_*": true,
  966 + "sublimelinter": true,
  967 + "sublimelinter_delay": 0,
  968 + "sublimelinter_disable":
  969 + [
  970 + ],
  971 + "sublimelinter_executable_map":
  972 + {
  973 + },
  974 + "sublimelinter_fill_outlines": false,
  975 + "sublimelinter_gutter_marks": false,
  976 + "sublimelinter_notes": false,
  977 + "sublimelinter_objj_check_ascii": false,
  978 + "sublimelinter_popup_errors_on_save": false,
  979 + "sublimelinter_syntax_map":
  980 + {
  981 + "Python Django": "python"
  982 + },
  983 + "sublimelinter_wrap_find": true,
  984 + "syntax": "Packages/Python/Python.tmLanguage",
  985 + "tab_size": 4,
  986 + "translate_tabs_to_spaces": true
  987 + },
  988 + "translation.x": 0.0,
  989 + "translation.y": 726.0,
  990 + "zoom_level": 1.0
  991 + },
  992 + "type": "text"
106 993 }
107 994 ]
108 995 }
@@ -113,7 +1000,7 @@
113 1000 },
114 1001 "input":
115 1002 {
116   - "height": 0.0
  1003 + "height": 35.0
117 1004 },
118 1005 "layout":
119 1006 {
@@ -124,11 +1011,18 @@
124 1011 0,
125 1012 1,
126 1013 1
  1014 + ],
  1015 + [
  1016 + 1,
  1017 + 0,
  1018 + 2,
  1019 + 1
127 1020 ]
128 1021 ],
129 1022 "cols":
130 1023 [
131 1024 0.0,
  1025 + 0.463764990888,
132 1026 1.0
133 1027 ],
134 1028 "rows":
@@ -138,9 +1032,13 @@
138 1032 ]
139 1033 },
140 1034 "menu_visible": true,
  1035 + "output.exec":
  1036 + {
  1037 + "height": 268.0
  1038 + },
141 1039 "replace":
142 1040 {
143   - "height": 0.0
  1041 + "height": 64.0
144 1042 },
145 1043 "save_all_on_build": true,
146 1044 "select_file":
@@ -153,11 +1051,19 @@
153 1051 },
154 1052 "select_project":
155 1053 {
156   - "height": 0.0,
  1054 + "height": 500.0,
157 1055 "selected_items":
158 1056 [
  1057 + [
  1058 + "sandbox",
  1059 + "/home/croxis/src/SandBox/sandbox.sublime-project"
  1060 + ],
  1061 + [
  1062 + "",
  1063 + "/home/croxis/src/SandBox/sandbox.sublime-project"
  1064 + ]
159 1065 ],
160   - "width": 0.0
  1066 + "width": 380.0
161 1067 },
162 1068 "show_minimap": true,
163 1069 "show_open_files": false,
105 client.py
... ... @@ -0,0 +1,105 @@
  1 +import sandbox
  2 +
  3 +from pandac.PandaModules import loadPrcFileData
  4 +loadPrcFileData("", "notify-level-ITF-ClientNetwork debug")
  5 +from direct.directnotify.DirectNotify import DirectNotify
  6 +log = DirectNotify().newCategory("ITF-ClientNetwork")
  7 +
  8 +from panda3d.core import QueuedConnectionManager, QueuedConnectionReader, ConnectionWriter, NetAddress, NetDatagram
  9 +from direct.distributed.PyDatagram import PyDatagram
  10 +from direct.distributed.PyDatagramIterator import PyDatagramIterator
  11 +
  12 +import protocol
  13 +import solarSystem
  14 +import universals
  15 +
  16 +class ClientNetworkSystem(sandbox.EntitySystem):
  17 + def init(self, port=2000, server="127.0.0.1", serverPort=1999, backlog=1000, compress=False):
  18 + self.packetCount = 0
  19 + self.port = port
  20 + self.serverPort = serverPort
  21 + self.serverIP = server
  22 + self.serverAddress = NetAddress()
  23 + self.serverAddress.setHost(server, serverPort)
  24 + self.cManager = QueuedConnectionManager()
  25 + self.cReader = QueuedConnectionReader(self.cManager, 0)
  26 + self.cWriter = ConnectionWriter(self.cManager, 0)
  27 +
  28 + self.udpSocket = self.cManager.openUDPConnection(self.port)
  29 + self.cReader.addConnection(self.udpSocket)
  30 +
  31 + self.startPolling()
  32 +
  33 + def startPolling(self):
  34 + taskMgr.add(self.tskReaderPolling, "serverListenTask", -40)
  35 +
  36 + def tskReaderPolling(self, taskdata):
  37 + if self.cReader.dataAvailable():
  38 + datagram = NetDatagram() # catch the incoming data in this instance
  39 + # Check the return value; if we were threaded, someone else could have
  40 + # snagged this data before we did
  41 + if self.cReader.getData(datagram):
  42 + myIterator = PyDatagramIterator(datagram)
  43 + msgID = myIterator.getUint8()
  44 +
  45 + #If not in our protocol range then we just reject
  46 + if msgID < 0 or msgID > 200:
  47 + return taskdata.cont
  48 +
  49 + #Order of these will need to be optimized later
  50 + #We now pull out the rest of our headers
  51 + remotePacketCount = myIterator.getUint8()
  52 + ack = myIterator.getUint8()
  53 + acks = myIterator.getUint16()
  54 + hashID = myIterator.getUint16()
  55 + sourceOfMessage = datagram.getConnection()
  56 +
  57 + if msgID == protocol.LOGIN_ACCEPTED:
  58 + log.info("Login accepted")
  59 + universals.day = myIterator.getFloat32()
  60 + print "Day set to", universals.day
  61 + elif msgID == protocol.LOGIN_DENIED:
  62 + log.info("Login failed")
  63 + return taskdata.cont
  64 +
  65 + def genBasicData(self, proto):
  66 + myPyDatagram = PyDatagram()
  67 + myPyDatagram.addUint8(proto)
  68 + myPyDatagram.addUint8(self.packetCount)
  69 + myPyDatagram.addUint8(0)
  70 + myPyDatagram.addUint16(0)
  71 + myPyDatagram.addUint16(0)
  72 + self.packetCount += 1
  73 + return myPyDatagram
  74 +
  75 + def sendLogin(self, username, hashpassword):
  76 + datagram = self.genBasicData(protocol.LOGIN)
  77 + datagram.addString("User name")
  78 + datagram.addString("Hashed password")
  79 + log.debug("sending login")
  80 + self.sendData(datagram)
  81 +
  82 + def sendData(self, datagram):
  83 + sent = self.cWriter.send(datagram, self.udpSocket, self.serverAddress)
  84 + while not sent:
  85 + print "resending"
  86 + sent = self.cWriter.send(datagram, self.udpSocket, self.serverAddress)
  87 +
  88 +log.info("Setting up Solar System Body Simulator")
  89 +sandbox.addSystem(solarSystem.SolarSystemSystem(solarSystem.BaryCenter, solarSystem.Body, solarSystem.Star))
  90 +
  91 +def planetPositionDebug(task):
  92 + log.debug("===== Day: " + str(universals.day) + " =====")
  93 + for bod in sandbox.getSystem(solarSystem.SolarSystemSystem).bodies:
  94 + log.debug(bod.getName() + ": " + str(bod.getPos()))
  95 + return task.again
  96 +
  97 +taskMgr.doMethodLater(10, planetPositionDebug, "Position Debug")
  98 +
  99 +network = ClientNetworkSystem()
  100 +sandbox.addSystem(network)
  101 +
  102 +
  103 +
  104 +taskMgr.doMethodLater(2, network.sendLogin, 'Task Name', extraArgs=["croxis", "pass"])
  105 +sandbox.run()
236 main.py
@@ -23,8 +23,9 @@
23 23 from pandac.PandaModules import loadPrcFileData
24 24 #import Globals
25 25
26   -def usage(code, msg = ''):
27   - print >> sys.stderr, usageText % {'prog' : os.path.split(sys.argv[0])[1]}
  26 +
  27 +def usage(code, msg=''):
  28 + print >> sys.stderr, usageText % {'prog': os.path.split(sys.argv[0])[1]}
28 29 print >> sys.stderr, msg
29 30 sys.exit(code)
30 31
@@ -99,189 +100,78 @@ def usage(code, msg = ''):
99 100 from direct.directnotify.DirectNotify import DirectNotify
100 101 log = DirectNotify().newCategory("ITF")
101 102
102   -log.debug("Loading SandBox")
103   -import sys
104   -sys.path.append("/home/croxis/src")
105   -import SandBox
106   -
107   -from direct.stdpy.file import *
108   -from direct.task.Task import Task
109   -
110   -from panda3d.core import NodePath, Point3
  103 +log.debug("Loading sandbox")
111 104
112   -import math
113   -from math import sin, cos, pi, radians, degrees, sqrt, atan2
  105 +import sandbox
114 106
115   -import yaml
  107 +from direct.stdpy.file import *
116 108
117   -import serverNet
  109 +from panda3d.bullet import BulletRigidBodyNode, BulletSphereShape, BulletWorld
  110 +from panda3d.core import Point3, Vec3
118 111
119 112 log.debug("Making room for globals")
120   -solarSystemRoot = 0
121   -# Connivance constant, number of seconds in an Earth day
122   -SECONDSINDAY = 86400
123   -
124   -# Time acceleration factor
125   -# Default is 31,536,000 (365.25*24*60), or the earth orbits the sun in one minute
126   -#TIMEFACTOR = 525969.162726
127   -# Factor where it orbits once every 5 minutes
128   -#TIMEFACTOR = 105193.832545
129   -# Once an hour
130   -#TIMEFACTOR = 8766.1527121
131   -# Once a day
132   -#TIMEFACTOR = 365.256363004
133   -# Realtime
134   -#TIMEFACTOR = 1
135   -TIMEFACTOR = 100.0
136   -
137   -# Julian day based on J2000.
138   -day = 9131.25
139   -bods = []
140   -
141   -
142   -class BaryCenter(NodePath):
143   - pass
144   -
145   -class Body(BaryCenter):
146   - period = 0
147   - mass = 1
148   - radius = 1
149   - kind = "solid"
150   - orbit = {}
151   -
152   -class Star(Body):
153   - kind = "star"
154   - absoluteM = 1
155   - spectralType = ""
156