fix [#28191] Exception when enabling a script for a newer Blender build
[blender.git] / doc / python_api / rst / bge.logic.rst
1
2 Game Logic (bge.logic)
3 ======================
4
5 *****
6 Intro
7 *****
8
9 Module to access logic functions, imported automatically into the python controllers namespace.
10
11 .. module:: bge.logic
12
13 .. code-block:: python
14
15    # To get the controller thats running this python script:
16    cont = bge.logic.getCurrentController() # bge.logic is automatically imported
17    
18    # To get the game object this controller is on:
19    obj = cont.owner
20
21 :class:`~bge.types.KX_GameObject` and :class:`~bge.types.KX_Camera` or :class:`~bge.types.KX_LightObject` methods are available depending on the type of object
22
23 .. code-block:: python
24
25    # To get a sensor linked to this controller.
26    # "sensorname" is the name of the sensor as defined in the Blender interface.
27    # +---------------------+  +--------+
28    # | Sensor "sensorname" +--+ Python +
29    # +---------------------+  +--------+
30    sens = cont.sensors["sensorname"]
31
32    # To get a sequence of all sensors:
33    sensors = co.sensors
34
35 See the sensor's reference for available methods:
36
37 .. hlist::
38    :columns: 3
39
40    * :class:`~bge.types.KX_MouseFocusSensor`
41    * :class:`~bge.types.KX_NearSensor`
42    * :class:`~bge.types.KX_NetworkMessageSensor`
43    * :class:`~bge.types.KX_RadarSensor`
44    * :class:`~bge.types.KX_RaySensor`
45    * :class:`~bge.types.KX_TouchSensor`
46    * :class:`~bge.types.SCA_DelaySensor`
47    * :class:`~bge.types.SCA_JoystickSensor`
48    * :class:`~bge.types.SCA_KeyboardSensor`
49    * :class:`~bge.types.SCA_MouseSensor`
50    * :class:`~bge.types.SCA_PropertySensor`
51    * :class:`~bge.types.SCA_RandomSensor`
52
53 You can also access actuators linked to the controller
54
55 .. code-block:: python
56
57    # To get an actuator attached to the controller:
58    #                          +--------+  +-------------------------+
59    #                          + Python +--+ Actuator "actuatorname" |
60    #                          +--------+  +-------------------------+
61    actuator = co.actuators["actuatorname"]
62    
63    # Activate an actuator
64    controller.activate(actuator)
65
66 See the actuator's reference for available methods
67
68 .. hlist::
69    :columns: 3
70    
71    * :class:`~bge.types.BL_ActionActuator`
72    * :class:`~bge.types.BL_ShapeActionActuator`
73    * :class:`~bge.types.KX_CameraActuator`
74    * :class:`~bge.types.KX_ConstraintActuator`
75    * :class:`~bge.types.KX_GameActuator`
76    * :class:`~bge.types.KX_IpoActuator`
77    * :class:`~bge.types.KX_NetworkMessageActuator`
78    * :class:`~bge.types.KX_ObjectActuator`
79    * :class:`~bge.types.KX_ParentActuator`
80    * :class:`~bge.types.KX_SCA_AddObjectActuator`
81    * :class:`~bge.types.KX_SCA_DynamicActuator`
82    * :class:`~bge.types.KX_SCA_EndObjectActuator`
83    * :class:`~bge.types.KX_SCA_ReplaceMeshActuator`
84    * :class:`~bge.types.KX_SceneActuator`
85    * :class:`~bge.types.KX_SoundActuator`
86    * :class:`~bge.types.KX_StateActuator`
87    * :class:`~bge.types.KX_TrackToActuator`
88    * :class:`~bge.types.KX_VisibilityActuator`
89    * :class:`~bge.types.SCA_2DFilterActuator`
90    * :class:`~bge.types.SCA_PropertyActuator`
91    * :class:`~bge.types.SCA_RandomActuator`
92
93 Most logic brick's methods are accessors for the properties available in the logic buttons.
94 Consult the logic bricks documentation for more information on how each logic brick works.
95
96 There are also methods to access the current :class:`bge.types.KX_Scene`
97
98 .. code-block:: python
99
100    # Get the current scene
101    scene = bge.logic.getCurrentScene()
102
103    # Get the current camera
104    cam = scene.active_camera
105
106 Matricies as used by the game engine are **row major**
107 ``matrix[row][col] = float``
108
109 :class:`bge.types.KX_Camera` has some examples using matricies.
110
111 *********
112 Variables
113 *********
114
115 .. data:: globalDict
116
117    A dictionary that is saved between loading blend files so you can use it to store inventory and other variables you want to store between scenes and blend files.
118    It can also be written to a file and loaded later on with the game load/save actuators.
119
120    .. note:: only python built in types such as int/string/bool/float/tuples/lists can be saved, GameObjects, Actuators etc will not work as expected.
121
122 .. data:: keyboard
123
124    The current keyboard wrapped in an :class:`~bge.types.SCA_PythonKeyboard` object.
125
126 .. data:: mouse
127
128    The current mouse wrapped in an :class:`~bge.types.SCA_PythonMouse` object.
129
130 *****************
131 General functions
132 *****************
133
134 .. function:: getCurrentController()
135
136    Gets the Python controller associated with this Python script.
137    
138    :rtype: :class:`bge.types.SCA_PythonController`
139
140 .. function:: getCurrentScene()
141
142    Gets the current Scene.
143    
144    :rtype: :class:`bge.types.KX_Scene`
145
146 .. function:: getSceneList()
147
148    Gets a list of the current scenes loaded in the game engine.
149    
150    :rtype: list of :class:`bge.types.KX_Scene`
151    
152    .. note:: Scenes in your blend file that have not been converted wont be in this list. This list will only contain scenes such as overlays scenes.
153
154 .. function:: loadGlobalDict()
155
156    Loads bge.logic.globalDict from a file.
157
158 .. function:: saveGlobalDict()
159
160    Saves bge.logic.globalDict to a file.
161
162 .. function:: startGame(blend)
163
164    Loads the blend file.
165    
166    :arg blend: The name of the blend file
167    :type blend: string
168
169 .. function:: endGame()
170
171    Ends the current game.
172
173 .. function:: restartGame()
174
175    Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
176    
177 .. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
178    
179    Converts the all of the datablocks of the given type from the given blend.
180    
181    :arg blend: The path to the blend file (or the name to use for the library if data is supplied)
182    :type blend: string
183    :arg type: The datablock type (currently only "Action", "Mesh" and "Scene" are supported)
184    :type type: string
185    :arg data: Binary data from a blend file (optional)
186    :type data: bytes
187    :arg load_actions: Search for and load all actions in a given Scene and not just the "active" actions (Scene type only)
188    :type load_actions: bool
189    :arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
190    :type verbose: bool
191    
192 .. function:: LibNew(name, type, data)
193
194    Uses existing datablock data and loads in as a new library.
195    
196    :arg name: A unique library name used for removal later
197    :type name: string
198    :arg type: The datablock type (currently only "Mesh" is supported)
199    :type type: string
200    :arg data: A list of names of the datablocks to load
201    :type data: list of strings
202    
203 .. function:: LibFree(name)
204
205    Frees a library, removing all objects and meshes from the currently active scenes.
206
207    :arg name: The name of the library to free (the name used in LibNew)
208    :type name: string
209    
210 .. function:: LibList()
211
212    Returns a list of currently loaded libraries.
213    
214    :rtype: list [str]
215
216 .. function:: addScene(name, overlay=1)
217
218    Loads a scene into the game engine.
219
220    .. note::
221
222       This function is not effective immediately, the scene is queued
223       and added on the next logic cycle where it will be available
224       from `getSceneList`
225
226    :arg name: The name of the scene
227    :type name: string
228    :arg overlay: Overlay or underlay (optional)
229    :type overlay: integer
230
231 .. function:: sendMessage(subject, body="", to="", message_from="")
232
233    Sends a message to sensors in any active scene.
234    
235    :arg subject: The subject of the message
236    :type subject: string
237    :arg body: The body of the message (optional)
238    :type body: string
239    :arg to: The name of the object to send the message to (optional)
240    :type to: string
241    :arg message_from: The name of the object that the message is coming from (optional)
242    :type message_from: string
243
244 .. function:: setGravity(gravity)
245
246    Sets the world gravity.
247    
248    :type gravity: list [fx, fy, fz]
249
250 .. function:: getSpectrum()
251
252    Returns a 512 point list from the sound card.
253    This only works if the fmod sound driver is being used.
254    
255    :rtype: list [float], len(getSpectrum()) == 512
256
257 .. function:: stopDSP()
258
259    Stops the sound driver using DSP effects.
260    
261    Only the fmod sound driver supports this.
262    DSP can be computationally expensive.
263
264 .. function:: getMaxLogicFrame()
265
266    Gets the maximum number of logic frames per render frame.
267    
268    :return: The maximum number of logic frames per render frame
269    :rtype: integer
270
271 .. function:: setMaxLogicFrame(maxlogic)
272
273    Sets the maximum number of logic frames that are executed per render frame.
274    This does not affect the physic system that still runs at full frame rate.   
275     
276    :arg maxlogic: The new maximum number of logic frames per render frame. Valid values: 1..5
277    :type maxlogic: integer
278
279 .. function:: getMaxPhysicsFrame()
280
281    Gets the maximum number of physics frames per render frame.
282    
283    :return: The maximum number of physics frames per render frame
284    :rtype: integer
285
286 .. function:: setMaxPhysicsFrame(maxphysics)
287
288    Sets the maximum number of physics timestep that are executed per render frame.
289    Higher value allows physics to keep up with realtime even if graphics slows down the game.
290    Physics timestep is fixed and equal to 1/tickrate (see setLogicTicRate)
291    maxphysics/ticrate is the maximum delay of the renderer that physics can compensate.
292     
293    :arg maxphysics: The new maximum number of physics timestep per render frame. Valid values: 1..5.
294    :type maxphysics: integer
295
296 .. function:: getLogicTicRate()
297
298    Gets the logic update frequency.
299    
300    :return: The logic frequency in Hz
301    :rtype: float
302
303 .. function:: setLogicTicRate(ticrate)
304
305    Sets the logic update frequency.
306    
307    The logic update frequency is the number of times logic bricks are executed every second.
308    The default is 60 Hz.
309    
310    :arg ticrate: The new logic update frequency (in Hz).
311    :type ticrate: float
312
313 .. function:: getPhysicsTicRate()
314
315    Gets the physics update frequency
316    
317    :return: The physics update frequency in Hz
318    :rtype: float
319    
320    .. warning: Not implimented yet
321
322 .. function:: setPhysicsTicRate(ticrate)
323
324    Sets the physics update frequency
325    
326    The physics update frequency is the number of times the physics system is executed every second.
327    The default is 60 Hz.
328    
329    :arg ticrate: The new update frequency (in Hz).
330    :type ticrate: float
331
332    .. warning: Not implimented yet
333
334 *****************
335 Utility functions
336 *****************
337
338 .. function:: expandPath(path)
339
340    Converts a blender internal path into a proper file system path.
341
342    Use / as directory separator in path
343    You can use '//' at the start of the string to define a relative path;
344    Blender replaces that string by the directory of the startup .blend or runtime file
345    to make a full path name (doesn't change during the game, even if you load other .blend).
346    The function also converts the directory separator to the local file system format.
347
348    :arg path: The path string to be converted/expanded.
349    :type path: string
350    :return: The converted string
351    :rtype: string
352
353 .. function:: getAverageFrameRate()
354
355    Gets the estimated/average framerate for all the active scenes, not only the current scene.
356
357    :return: The estimated average framerate in frames per second
358    :rtype: float
359
360 .. function:: getBlendFileList(path = "//")
361
362    Returns a list of blend files in the same directory as the open blend file, or from using the option argument.
363
364    :arg path: Optional directory argument, will be expanded (like expandPath) into the full path.
365    :type path: string
366    :return: A list of filenames, with no directory prefix
367    :rtype: list
368
369 .. function:: getRandomFloat()
370
371    Returns a random floating point value in the range [0 - 1)
372
373 .. function:: PrintGLInfo()
374
375    Prints GL Extension Info into the console
376    
377 *********
378 Constants
379 *********
380
381 .. data:: KX_TRUE
382
383    True value used by some modules.
384
385 .. data:: KX_FALSE
386
387    False value used by some modules.
388
389 =======
390 Sensors
391 ======= 
392
393 .. _sensor-status:
394
395 -------------
396 Sensor Status
397 -------------
398
399 .. data:: KX_SENSOR_INACTIVE
400 .. data:: KX_SENSOR_JUST_ACTIVATED
401 .. data:: KX_SENSOR_ACTIVE
402 .. data:: KX_SENSOR_JUST_DEACTIVATED
403
404 .. _logic-property-sensor:
405
406 ---------------
407 Property Sensor
408 ---------------
409
410 .. data:: KX_PROPSENSOR_EQUAL
411
412    Activate when the property is equal to the sensor value.
413
414    :value: 1
415
416 .. data:: KX_PROPSENSOR_NOTEQUAL
417
418    Activate when the property is not equal to the sensor value.
419    
420    :value: 2
421
422 .. data:: KX_PROPSENSOR_INTERVAL
423
424    Activate when the property is between the specified limits.
425    
426    :value: 3
427    
428 .. data:: KX_PROPSENSOR_CHANGED
429
430    Activate when the property changes   
431
432    :value: 4
433
434 .. data:: KX_PROPSENSOR_EXPRESSION
435
436    Activate when the expression matches
437    
438    :value: 5
439
440 ------------
441 Radar Sensor
442 ------------
443
444 See :class:`bge.types.KX_RadarSensor`
445
446 .. data:: KX_RADAR_AXIS_POS_X
447 .. data:: KX_RADAR_AXIS_POS_Y
448 .. data:: KX_RADAR_AXIS_POS_Z
449 .. data:: KX_RADAR_AXIS_NEG_X
450 .. data:: KX_RADAR_AXIS_NEG_Y
451 .. data:: KX_RADAR_AXIS_NEG_Z
452
453 ----------
454 Ray Sensor
455 ----------
456
457 See :class:`bge.types.KX_RaySensor`
458
459 .. data:: KX_RAY_AXIS_POS_X
460 .. data:: KX_RAY_AXIS_POS_Y
461 .. data:: KX_RAY_AXIS_POS_Z
462 .. data:: KX_RAY_AXIS_NEG_X
463 .. data:: KX_RAY_AXIS_NEG_Y
464 .. data:: KX_RAY_AXIS_NEG_Z
465
466
467 =========
468 Actuators
469 =========
470
471 .. _action-actuator:
472
473 ---------------
474 Action Actuator
475 ---------------
476
477 See :class:`bge.types.BL_ActionActuator`
478
479 .. data:: KX_ACTIONACT_PLAY
480 .. data:: KX_ACTIONACT_FLIPPER
481 .. data:: KX_ACTIONACT_LOOPSTOP
482 .. data:: KX_ACTIONACT_LOOPEND
483 .. data:: KX_ACTIONACT_PROPERTY
484
485 -------------------
486 Constraint Actuator
487 -------------------
488
489 .. _constraint-actuator-option:
490
491 See :class:`bge.types.KX_ConstraintActuator.option`
492
493 * Applicable to Distance constraint:
494
495   .. data:: KX_ACT_CONSTRAINT_NORMAL
496
497      Activate alignment to surface
498    
499   .. data:: KX_ACT_CONSTRAINT_DISTANCE
500
501      Activate distance control
502
503   .. data:: KX_ACT_CONSTRAINT_LOCAL
504
505      Direction of the ray is along the local axis
506
507 * Applicable to Force field constraint:
508
509   .. data:: KX_ACT_CONSTRAINT_DOROTFH
510
511      Force field act on rotation as well
512
513 * Applicable to both:
514
515   .. data:: KX_ACT_CONSTRAINT_MATERIAL
516
517      Detect material rather than property
518    
519   .. data:: KX_ACT_CONSTRAINT_PERMANENT
520
521      No deactivation if ray does not hit target
522
523 .. _constraint-actuator-limit:
524
525 See :class:`bge.types.KX_ConstraintActuator.limit`
526
527 .. data:: KX_CONSTRAINTACT_LOCX
528
529    Limit X coord.
530    
531 .. data:: KX_CONSTRAINTACT_LOCY
532
533    Limit Y coord
534
535 .. data:: KX_CONSTRAINTACT_LOCZ
536
537    Limit Z coord
538    
539 .. data:: KX_CONSTRAINTACT_ROTX
540
541    Limit X rotation
542
543 .. data:: KX_CONSTRAINTACT_ROTY
544
545    Limit Y rotation
546    
547 .. data:: KX_CONSTRAINTACT_ROTZ
548
549    Limit Z rotation
550    
551 .. data:: KX_CONSTRAINTACT_DIRNX
552
553    Set distance along negative X axis
554
555 .. data:: KX_CONSTRAINTACT_DIRNY
556
557    Set distance along negative Y axis
558    
559 .. data:: KX_CONSTRAINTACT_DIRNZ
560
561    Set distance along negative Z axis
562    
563 .. data:: KX_CONSTRAINTACT_DIRPX
564
565    Set distance along positive X axis
566
567 .. data:: KX_CONSTRAINTACT_DIRPY
568
569    Set distance along positive Y axis
570    
571 .. data:: KX_CONSTRAINTACT_DIRPZ
572
573    Set distance along positive Z axis
574    
575 .. data:: KX_CONSTRAINTACT_ORIX
576
577    Set orientation of X axis
578    
579 .. data:: KX_CONSTRAINTACT_ORIY
580
581    Set orientation of Y axis
582    
583 .. data:: KX_CONSTRAINTACT_ORIZ
584
585    Set orientation of Z axis
586    
587 .. data:: KX_ACT_CONSTRAINT_FHNX
588
589    Set force field along negative X axis
590    
591 .. data:: KX_ACT_CONSTRAINT_FHNY
592
593    Set force field along negative Y axis
594    
595 .. data:: KX_ACT_CONSTRAINT_FHNZ
596
597    Set force field along negative Z axis
598    
599 .. data:: KX_ACT_CONSTRAINT_FHPX
600
601    Set force field along positive X axis
602
603 .. data:: KX_ACT_CONSTRAINT_FHPY
604
605    Set force field along positive Y axis
606    
607 .. data:: KX_ACT_CONSTRAINT_FHPZ
608
609    Set force field along positive Z axis
610
611 ----------------
612 Dynamic Actuator
613 ----------------
614
615 See :class:`bge.types.KX_SCA_DynamicActuator`
616
617 .. data:: KX_DYN_RESTORE_DYNAMICS
618 .. data:: KX_DYN_DISABLE_DYNAMICS
619 .. data:: KX_DYN_ENABLE_RIGID_BODY
620 .. data:: KX_DYN_DISABLE_RIGID_BODY
621 .. data:: KX_DYN_SET_MASS
622
623 .. _game-actuator:
624
625 -------------
626 Game Actuator
627 -------------
628
629 See :class:`bge.types.KX_GameActuator`
630
631 .. data:: KX_GAME_LOAD
632 .. data:: KX_GAME_START
633 .. data:: KX_GAME_RESTART
634 .. data:: KX_GAME_QUIT
635 .. data:: KX_GAME_SAVECFG
636 .. data:: KX_GAME_LOADCFG
637
638 .. _ipo-actuator:
639
640 ------------
641 IPO Actuator
642 ------------
643
644 See :class:`bge.types.KX_IpoActuator`
645
646 .. data:: KX_IPOACT_PLAY
647 .. data:: KX_IPOACT_PINGPONG
648 .. data:: KX_IPOACT_FLIPPER
649 .. data:: KX_IPOACT_LOOPSTOP
650 .. data:: KX_IPOACT_LOOPEND
651 .. data:: KX_IPOACT_FROM_PROP
652
653 ---------------
654 Parent Actuator
655 ---------------
656
657 .. data:: KX_PARENT_REMOVE
658 .. data:: KX_PARENT_SET
659
660 .. _logic-random-distributions:
661
662 --------------------
663 Random Distributions
664 --------------------
665
666 See :class:`bge.types.SCA_RandomActuator`
667
668 .. data:: KX_RANDOMACT_BOOL_CONST
669 .. data:: KX_RANDOMACT_BOOL_UNIFORM
670 .. data:: KX_RANDOMACT_BOOL_BERNOUILLI
671 .. data:: KX_RANDOMACT_INT_CONST
672 .. data:: KX_RANDOMACT_INT_UNIFORM
673 .. data:: KX_RANDOMACT_INT_POISSON
674 .. data:: KX_RANDOMACT_FLOAT_CONST
675 .. data:: KX_RANDOMACT_FLOAT_UNIFORM
676 .. data:: KX_RANDOMACT_FLOAT_NORMAL
677 .. data:: KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL
678
679 --------------
680 Scene Actuator
681 --------------
682
683 See :class:`bge.types.KX_SceneActuator`
684
685 .. data:: KX_SCENE_RESTART
686 .. data:: KX_SCENE_SET_SCENE
687 .. data:: KX_SCENE_SET_CAMERA
688 .. data:: KX_SCENE_ADD_FRONT_SCENE
689 .. data:: KX_SCENE_ADD_BACK_SCENE
690 .. data:: KX_SCENE_REMOVE_SCENE
691 .. data:: KX_SCENE_SUSPEND
692 .. data:: KX_SCENE_RESUME
693
694 .. _shape-action-actuator:
695
696 ---------------------
697 Shape Action Actuator
698 ---------------------
699
700 See :class:`bge.types.BL_ActionActuator`
701
702 .. data:: KX_ACTIONACT_PLAY
703 .. data:: KX_ACTIONACT_FLIPPER
704 .. data:: KX_ACTIONACT_LOOPSTOP
705 .. data:: KX_ACTIONACT_LOOPEND
706 .. data:: KX_ACTIONACT_PROPERTY
707
708 .. _logic-sound-actuator:
709
710 --------------
711 Sound Actuator
712 --------------
713       
714 See :class:`bge.types.KX_SoundActuator`
715
716 .. data:: KX_SOUNDACT_PLAYSTOP
717
718    :value: 1
719    
720 .. data:: KX_SOUNDACT_PLAYEND
721
722    :value: 2
723    
724 .. data:: KX_SOUNDACT_LOOPSTOP
725
726    :value: 3
727    
728 .. data:: KX_SOUNDACT_LOOPEND
729
730    :value: 4
731    
732 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL
733
734    :value: 5
735    
736 .. data:: KX_SOUNDACT_LOOPBIDIRECTIONAL_STOP
737
738    :value: 6
739    
740
741 =======
742 Various
743 =======
744
745 .. _input-status:
746
747 ------------
748 Input Status
749 ------------
750
751 See :class:`bge.types.SCA_PythonKeyboard`, :class:`bge.types.SCA_PythonMouse`, :class:`bge.types.SCA_MouseSensor`, :class:`bge.types.SCA_KeyboardSensor`
752
753 .. data:: KX_INPUT_NONE
754 .. data:: KX_INPUT_JUST_ACTIVATED
755 .. data:: KX_INPUT_ACTIVE
756 .. data:: KX_INPUT_JUST_RELEASED
757
758 -------------
759 Mouse Buttons
760 -------------
761
762 See :class:`bge.types.SCA_MouseSensor`
763
764 .. data:: KX_MOUSE_BUT_LEFT
765 .. data:: KX_MOUSE_BUT_MIDDLE
766 .. data:: KX_MOUSE_BUT_RIGHT
767
768 ------
769 States
770 ------
771
772 See :class:`bge.types.KX_StateActuator`
773
774 .. data:: KX_STATE1
775 .. data:: KX_STATE2
776 .. data:: KX_STATE3
777 .. data:: KX_STATE4
778 .. data:: KX_STATE5
779 .. data:: KX_STATE6
780 .. data:: KX_STATE7
781 .. data:: KX_STATE8
782 .. data:: KX_STATE9
783 .. data:: KX_STATE10
784 .. data:: KX_STATE11
785 .. data:: KX_STATE12
786 .. data:: KX_STATE13
787 .. data:: KX_STATE14
788 .. data:: KX_STATE15
789 .. data:: KX_STATE16
790 .. data:: KX_STATE17
791 .. data:: KX_STATE18
792 .. data:: KX_STATE19
793 .. data:: KX_STATE20
794 .. data:: KX_STATE21
795 .. data:: KX_STATE22
796 .. data:: KX_STATE23
797 .. data:: KX_STATE24
798 .. data:: KX_STATE25
799 .. data:: KX_STATE26
800 .. data:: KX_STATE27
801 .. data:: KX_STATE28
802 .. data:: KX_STATE29
803 .. data:: KX_STATE30
804
805 .. _state-actuator-operation:
806
807 See :class:`bge.types.KX_StateActuator.operation`
808
809 .. data:: KX_STATE_OP_CLR
810
811    Substract bits to state mask
812    
813    :value: 0
814
815 .. data:: KX_STATE_OP_CPY
816
817    Copy state mask
818    
819    :value: 1
820    
821 .. data:: KX_STATE_OP_NEG
822
823    Invert bits to state mask
824    
825    :value: 2
826    
827 .. data:: KX_STATE_OP_SET
828
829    Add bits to state mask
830    
831    :value: 3
832    
833 .. _Two-D-FilterActuator-mode:
834
835 ---------
836 2D Filter
837 ---------
838
839 .. data:: RAS_2DFILTER_BLUR
840
841    :value: 2
842    
843 .. data:: RAS_2DFILTER_CUSTOMFILTER
844
845    Customer filter, the code code is set via shaderText property.
846    
847    :value: 12
848    
849 .. data:: RAS_2DFILTER_DILATION
850
851    :value: 4
852    
853 .. data:: RAS_2DFILTER_DISABLED
854
855    Disable the filter that is currently active
856
857    :value: -1
858    
859 .. data:: RAS_2DFILTER_ENABLED
860
861    Enable the filter that was previously disabled
862
863    :value: -2
864    
865 .. data:: RAS_2DFILTER_EROSION
866
867    :value: 5
868    
869 .. data:: RAS_2DFILTER_GRAYSCALE
870
871    :value: 9
872    
873 .. data:: RAS_2DFILTER_INVERT
874
875    :value: 11
876    
877 .. data:: RAS_2DFILTER_LAPLACIAN
878
879    :value: 6
880    
881 .. data:: RAS_2DFILTER_MOTIONBLUR
882
883    Create and enable preset filters
884
885    :value: 1
886    
887 .. data:: RAS_2DFILTER_NOFILTER
888
889    Disable and destroy the filter that is currently active
890
891    :value: 0
892    
893 .. data:: RAS_2DFILTER_PREWITT
894
895    :value: 8
896    
897 .. data:: RAS_2DFILTER_SEPIA
898
899    :value: 10
900    
901 .. data:: RAS_2DFILTER_SHARPEN
902
903    :value: 3
904    
905 .. data:: RAS_2DFILTER_SOBEL
906
907    :value: 7
908    
909 ------
910 Shader
911 ------
912
913 .. data:: VIEWMATRIX
914 .. data:: VIEWMATRIX_INVERSE
915 .. data:: VIEWMATRIX_INVERSETRANSPOSE
916 .. data:: VIEWMATRIX_TRANSPOSE
917 .. data:: MODELMATRIX
918 .. data:: MODELMATRIX_INVERSE
919 .. data:: MODELMATRIX_INVERSETRANSPOSE
920 .. data:: MODELMATRIX_TRANSPOSE
921 .. data:: MODELVIEWMATRIX
922 .. data:: MODELVIEWMATRIX_INVERSE
923 .. data:: MODELVIEWMATRIX_INVERSETRANSPOSE
924 .. data:: MODELVIEWMATRIX_TRANSPOSE
925 .. data:: CAM_POS
926
927    Current camera position
928
929 .. data:: CONSTANT_TIMER
930
931    User a timer for the uniform value.
932
933 .. data:: SHD_TANGENT
934
935 ----------------
936 Blender Material
937 ----------------
938
939 .. data:: BL_DST_ALPHA
940 .. data:: BL_DST_COLOR
941 .. data:: BL_ONE
942 .. data:: BL_ONE_MINUS_DST_ALPHA
943 .. data:: BL_ONE_MINUS_DST_COLOR
944 .. data:: BL_ONE_MINUS_SRC_ALPHA
945 .. data:: BL_ONE_MINUS_SRC_COLOR
946 .. data:: BL_SRC_ALPHA
947 .. data:: BL_SRC_ALPHA_SATURATE
948 .. data:: BL_SRC_COLOR
949 .. data:: BL_ZERO