Commit Graph

1085 Commits

Author SHA1 Message Date
Benoit Bolsee
2ec50d7bb2 BGE bug #18091: Hitbox of object X doesn't move along when object X is parented to object Y. 2009-04-30 19:00:17 +00:00
Dalai Felinto
8570071e40 supporting warp data files with tabs instead of spaces. 2009-04-30 15:27:38 +00:00
Campbell Barton
fdf6ea916d added Geometry as a BGE module, removed its dependency on gen_utils.c 2009-04-30 12:45:13 +00:00
Benoit Bolsee
81ea467091 BGE fux #17796: Glsl + bones + set smooth = bug on vertext groups. 2009-04-30 08:02:26 +00:00
Campbell Barton
b5b24ee521 BGE Python sys.path for the blenderplayer and blender
sys.path is the search path for python modules. This is useful so people making games can put all their scripts in a folder and be sure they will always load into the BGE.

for each blend file a scripts directory is added to the path
 /home/me/foo.blend
will look for modules in...
 /home/me/scripts/*.py 

It could also default to look for modules in the same directory as the blend file but I think this is messy.
Added a note in the tooltip about //scripts so its not such a hidden feature.

This works by storing the original sys.path, then adding the paths for the blendfile and all its libs,
when a new blendfile is loaded, the original sys.path is restored before adding the blendfiles paths again so the sys.path wont get junk in it.

One problem with this - when using linked libs the module names must be unique else it will load the wrong module for one of the controllers.

also fixed 2 bugs
- sys.path in the blenderplayer was growing by 1 for every file load in blenderplayer
- the relative path (gp_GamePythonPath), wasnt being set when loading files in the blenderlayer (as I wrongly said in the last commit).
2009-04-30 08:01:31 +00:00
Dalai Felinto
939290b59c BGE 2dFilters: Revert of part of own commit [rev. 19687]
Therefore we still need to find a better way to solve this problem:
[#18154] 2dFilter and motion blur should run only once to all the scenes:
http://projects.blender.org/tracker/?func=detail&aid=18154&group_id=9&atid=127
2009-04-30 03:46:31 +00:00
Dalai Felinto
5908e2aa77 BGE Dome update. Spurious black seams (finally) fixed.
The solution is a hack. It's a workaround for another bug (#18655).
Now it's working in all modes: fullscreen, maximized screen and gameplayer.

* small change to always set the perspective mode as true during dome mode.
2009-04-30 02:41:07 +00:00
Campbell Barton
199341ad7b 2 BGE bugs from 2.48 fixed
- the gp_GamePythonPath relative path variable wasnt updated when loading new files.
- missing NULL check for scene crashed blender when it failed to load a file.
Both problems dont affect blenderplayer
2009-04-30 02:07:08 +00:00
Campbell Barton
1782be5c72 Not sure why this INCREF is needed since making a replica wont use the m_bytecode so why should it add a user?
Removed in 19974 but that crashes YoFrankie so adding back in for now.
2009-04-30 00:51:11 +00:00
Campbell Barton
a625f5e476 error in last commit 2009-04-29 23:59:59 +00:00
Campbell Barton
1e7df58519 python modules in the game engine could point to builtin modules like GameLogic that was cleared.
I added module clearing before there was checks for invalid python objects, so now its not needed for BGE Builtin types at least.

also made the builtin modules get re-used if they already exist and clear all user modules when the game engine finishes so with Module-Py-Controllers the referenced modules are at least up to date when pressing Pkey.
2009-04-29 23:39:27 +00:00
Campbell Barton
70bcdb817b was testing this, didnt mean to commit. 2009-04-29 17:01:35 +00:00
Campbell Barton
81dfdf8374 ifdef's for future py3 support, after this adding py3 can mostly be done with defines or batch renaming funcs (with the exception of CListValue slicing)
.
No changes for py2.x.
2009-04-29 16:54:45 +00:00
Campbell Barton
d6c525d624 attempt to fix for py2.3 2009-04-29 16:48:00 +00:00
Campbell Barton
f8656d3510 BGE alternative run mode for python controllers.
Option to run a function in a module rather then a script from a python controller, this has a number of advantages.

- No allocating and freeing the namespace dictionary for every time its triggered
  (hard to measure the overhead here, but in a test with calling 42240 scripts a second each defining 200 vars, using modules was ~25% faster)

- Ability to use external python scripts for game logic.

- Convenient debug option that lets you edit scripts while the game engine runs.
2009-04-29 12:43:09 +00:00
Campbell Barton
32b70e333f needed this minor change to build on gcc 2009-04-29 11:16:26 +00:00
Campbell Barton
3bc02088e8 remove uneeded checks and testMethod from KX_ConstraintWrapper, typo in import_obj 2009-04-29 10:24:12 +00:00
Benoit Bolsee
f004c36e41 BGE: speed up mesh conversion by avoiding allocation/deallocation of material object on each face. The speed up is minor on optimized builds but considerable on less optimized builds, good for debugging large scene. 2009-04-29 10:06:38 +00:00
Erwin Coumans
2d78dcfb61 fix so that torque can be applied to DYNAMIC game objects, this fixes the skategirl.
Note that skategirl needs a bit higher angular damping, perhaps the conversion formula needs to be tweaked better?
2009-04-28 23:26:35 +00:00
Benoit Bolsee
e4abebfa91 BGE: reenable object activation for static object, otherwise their physic shape is not updated when they move due to parent relation. 2009-04-28 18:56:48 +00:00
Campbell Barton
94c6cadfe2 BGE PyAPI
- renamed generic attribute "isValid" to "invalid" since BL_Shader already uses isValid.
- Moved deprecation warnings from CValue 
- removed unused KX_Scene::SetProjectionMatrix and KX_Scene::GetViewMatrix
- Added KX_Scene attributes "lights", "cameras", "objects_inactive", to allow access to objects in unseen layers (before the AddObject actuator adds them)
- KX_Camera deprecated cam.enableViewport(bool) for cam.isViewport which can be read as well.
2009-04-28 13:11:56 +00:00
Campbell Barton
eee8dd9086 - Updated BGE docs to match the game engines class inheritance more closely.
- Grouped deprecated functions for KX_Camera, KX_GameObject, SCA_ISensor, SCA_ILogicBrick, KX_Scene
2009-04-28 13:02:49 +00:00
Benoit Bolsee
d4f8b416e9 BGE soft body: change welding option to disable welding check by default: speeds up shape conversion. This is fine if the object has no duplicate vertices. Otherwise, bullet will be extremely slow and you can either set some welding or remove duplicates in the mesh. Welding is now displayed in linear scale: 0.0 -> 0.01, no need to use logarithmic scale ;-). Fix a bug with Bullet by which vertex array for soft body must have 3xfloat stride. 2009-04-27 22:21:42 +00:00
Campbell Barton
dc664e3925 TexVert sharing was disabled for flat faces, this is silly since a building or any other model with flat faces will often be able to share texverts.
Simple testcase with a subdivided cube used 1/3 as many texverts and spend half as much time in the rasterizer while profiling.
2009-04-27 17:53:41 +00:00
Benoit Bolsee
352eaccd5d BGE: Add soft body welding parameter to the Advanced Settings panel. The values are very small so I chose to use logarithmic scale. Should be fine, it's an advanced setting after all. 2009-04-27 16:44:02 +00:00
Benoit Bolsee
c56ee09c48 BGE bug #18624: Collision detection fails on parented objects. Partial fix, parented shape now moves with the parent but still the parent near detector detects the child only in the zone where it was parented. 2009-04-27 16:40:26 +00:00
Campbell Barton
9c3d628082 [#18616] Scons+MinGW compiling error with gaming engine enabled.
Attempt to fix building in windows with mingw
2009-04-27 07:07:22 +00:00
Erwin Coumans
5d1d6ad4d1 Don't always activate a Bullet rigid body
If you want to keep a rigid body awake, please use the GUI 'No Sleeping' option for Rigid bodies.
2009-04-27 05:06:24 +00:00
Erwin Coumans
d2ff190dfb Lower the vertex welding threshold, for removing duplicate/nearby vertices for soft bodies (this broke susanne softbody regression test) 2009-04-27 04:21:05 +00:00
Campbell Barton
ce3aabb4e7 Rewind own commit that aimed to make converting meshes faster at startup.
Some files probably need to have UV's welded so better do this even though it seems inefficient.
2009-04-26 21:23:59 +00:00
Benoit Bolsee
ba563216e9 BGE: Fix Orthographic mode and viewport scaling
- the BGE now uses correct glOrtho projection whe camera is in orthographic mode
-
2009-04-26 12:23:30 +00:00
Campbell Barton
5233069908 Running 2.48rc on my system segfaults when starting the game engine, only on the release, not for my own builds.
Setting the SDL video driver to dummy prevents the crash, this is recommended in the SDL docs if your not using the video driver.
2009-04-25 12:58:07 +00:00
Benoit Bolsee
b991b32458 BGE mesh modifiers: fix view frustrum culling for mesh with modifiers. Update the bounding box based on mesh extent after applying the modifiers. 2009-04-25 12:20:59 +00:00
Campbell Barton
3038fb1a01 [#18606] Writing to KX_GameObject.orientation causes crash
Own bug, conversion function to get an orientation from python - PyOrientationTo() ignored user input completely :| (breaking the orientation attribute)

Also made KX_GameObject worldOrientation writable and minor doc fixes.
2009-04-25 07:17:36 +00:00
Campbell Barton
0c482f7607 BGE API - small changes
- print CListValue errors only once.
- bge_api_validate_py.txt now validates modules as well as types.
- added missing functions and consts for epydoc modules. some of these in GameLogic.py still need sorting.
2009-04-24 20:27:04 +00:00
Benoit Bolsee
252928ab36 BGE: removed support for time dependent modifiers, they don't make sense in the GE. Disable modifiers when Bullet soft body is used: bullet needs the original vertex array. 2009-04-24 19:49:15 +00:00
Campbell Barton
a5f4d7cb53 BGE PyAPI epydoc errors fixed 2009-04-24 07:45:17 +00:00
Benoit Bolsee
0feaedfa9a BGE bug #17950: crash when GE softbody is parented to a rigid body/soft body/dynamic object. 2009-04-23 21:19:42 +00:00
Benoit Bolsee
67b3e1a07b BGE bug #17863: Shaky game camera. 2009-04-23 20:30:01 +00:00
Brecht Van Lommel
70f1b45430 Fix for part of bug #18496: issue with light state switching
when using Dome.
2009-04-23 13:30:34 +00:00
Dalai Felinto
073abf7047 BGE Dome update:
* Enviroment Map implemented (replacing truncated mode 2).
 - Now it's possible to pre-bake animated (or static) EnvMaps to use with Cube Map textures.

* Enabling 2DFilter in Dome mode
 - no GL_DEPTH_BUFFER supported though.

* Tweaking GameSettings menu (centralizing buttons)
2009-04-23 02:27:11 +00:00
Dalai Felinto
7ac233be8a BGE Rasterizer methods to handle Screen Space - (getScreenPosition, getScreenVect, getScreenRay)
getScreenPosition(obj):
 - Gets the position of an object projected on screen space.

getScreenVect(x, y):
 - Gets the vector from the camera position in the screen coordinate direction.

getScreenRay(x, y, dist, property):
 - Look towards a screen coordinate (x,y) and find first object hit within dist that matches prop.
- The ray is a call to KX_GameObject->rayCastTo from the KX_Camera object.

Patch [#18589] test files can be found there. Patch reviewed by Campbell
2009-04-23 00:49:38 +00:00
Campbell Barton
e8f5c75005 patch from Mitchell Stokes, comments only - KX_PYATTRIBUTE_TODO for missing attributes 2009-04-23 00:47:45 +00:00
Campbell Barton
6a270ecb94 BGE Python API
CListValue fixes
- Disable changing CValueLists that the BGE uses internally (scene.objects.append(1) would crash when drawing)
- val=clist+list would modify clist in place, now return a new value.
- clist.append([....]), was working like extend.
- clist.append(val) didnt work for most CValue types like KX_GameObjects.

Other changes
- "isValid" was always returning True.
- Set all errors for invalid proxy access to PyExc_SystemError (was using a mix of error types)
- Added PyObjectPlus::InvalidateProxy() to manually invalidate, though if python ever gains access again, it will make a new valid proxy. This is so removing an object from a scene can invalidate the object even if its stored elsewhere in a CValueList for eg.
2009-04-23 00:32:33 +00:00
Benoit Bolsee
90508ed125 BGE bug #17670: Python controlled mist doesnt work in textured mode. 2009-04-22 22:12:36 +00:00
Campbell Barton
fd108f1019 [#18586] [bug] Ray sensor doesn't return a hit object
Supporting len(GameOb) to see how many properties it has backfired since it can then evaluate as false.
2009-04-22 20:43:41 +00:00
Benoit Bolsee
48f483d14f BGE: some more cleanup, implement proper GetReplica/ProcessReplica workflow for touch/near/radar sensor. Remove duplicated code. 2009-04-22 18:20:41 +00:00
Benoit Bolsee
f6d27e73ee BGE: some more cleanup, remove useless ReplicaSetName(), move code to ProcessReplica. 2009-04-22 16:58:04 +00:00
Benoit Bolsee
076d1910f5 BGE: some more cleanup in GetReplica/ProcessReplica of deformers: make them consistent with the other classes. 2009-04-22 16:26:22 +00:00
Campbell Barton
5553d2c014 BGE C++ API
PyObjectPlus::ProcessReplica() is now called when any of its subclasses are replicated.

This is important because PyObjectPlus::ProcessReplica() NULL's the 'm_proxy' python pointer I added recently.
Without this a replicated subclass of PyObjectPlus could have an invalid pointer (crashing the BGE).

This change also means CValue::AddDataToReplica() can be moved into CValue::ProcessReplica() since ProcessReplica is always called.
2009-04-22 14:42:00 +00:00