1 #ifndef BZ_GAME_SCENE_INTERNAL_H
2 #define BZ_GAME_SCENE_INTERNAL_H
4 #include <bz/game/scene.h>
6 #include <bz/collision/collision.h>
7 //#include <bz/fx/agent_simulation.h>
8 #include <bz/fx/particle_simulation.h>
9 #include <bz/game/tilemap.h>
10 #include <bz/gfx/draw_queue.h>
11 #include <bz/math/matrix.h>
12 #include <bz/types/identifier.h>
13 #include <sun/vm/vm.h>
19 struct BZScriptBindingMetadata {
22 BZIdentifierHash layer;
24 BZDrawQueueID drawQueue;
32 typedef struct BZScriptBindingMetadata BZScriptBindingMetadata;
34 typedef struct BZSceneLayer BZSceneLayer;
35 typedef BZSceneLayer * BZSceneLayerID;
37 extern size_t bzGameGetSceneLayerCount(BZSceneID scene);
38 extern BZSceneLayerID bzGameGetSceneLayerAtIndex(BZSceneID scene, size_t idx);
40 extern BZParticleSimulationID bzGameGetSceneLayerParticleSimulation2(BZSceneLayerID layer); // FIXME, what do we want to do...
41 extern BZCollisionSpaceID bzGameGetSceneLayerCollisionSpace2(BZSceneLayerID layer);
43 extern BZTilemapID bzGameGetSceneLayerTilemap(BZSceneID scene, BZIdentifierHash layerIdentifierHash);
44 extern BZDrawQueueID bzGameGetSceneLayerDrawQueue(BZSceneID scene, BZIdentifierHash layerIdentifierHash);
45 extern BZParticleSimulationID bzGameGetSceneLayerParticleSimulation(BZSceneID scene, BZIdentifierHash layerIdentifierHash);
46 extern BZCollisionSpaceID bzGameGetSceneLayerCollisionSpace(BZSceneID scene, BZIdentifierHash layerIdentifierHash);
48 //extern BZAgentSimulationID bzGameGetAgentSimulation(BZSceneID scene);
50 extern BZAudioPlaybackEngineID bzGameGetAudioPlaybackEngine(BZSceneID scene);
52 extern void bzGameSceneSetTargetSceneIdentifier(BZSceneID scene, const char *identifier);
54 extern bool bzScriptingGetEnvironmentPublic(SVMOperand *out, BZSceneID scene, BZIdentifierHash identifierHash);
55 extern void bzScriptingSetEnvironmentPublic(BZSceneID scene, BZIdentifierHash identifierHash, SVMOperand value);
57 extern void bzScriptingInitialiseMetadata(BZScriptBindingMetadata *metadata, BZActorID actor, BZSceneID scene, uint32_t uuid);
59 extern uint8_t gSystemTicksPerSecond;