|
supertux
|
Base class for all the things that make up Levels' Sectors. More...
#include <game_object.hpp>
Public Member Functions | |
| GameObject (const std::string &name) | |
| GameObject (const ReaderMapping &reader) | |
| virtual void | finish_construction () |
| Called after all objects have been added to the Sector and the Sector is fully constructed. More... | |
| UID | get_uid () const |
| virtual void | update (float dt_sec)=0 |
| This function is called once per frame and allows the object to update it's state. More... | |
| virtual void | draw (DrawingContext &context)=0 |
| The GameObject should draw itself onto the provided DrawingContext if this function is called. More... | |
| void | save (Writer &writer) |
| This function saves the object. More... | |
| virtual std::string | get_class () const |
| virtual std::string | get_display_name () const |
| virtual bool | is_singleton () const |
| If true only a single object of this type is allowed in a given GameObjectManager. | |
| virtual bool | has_variable_size () const |
| Does this object have variable size (secret area trigger, wind, etc.) | |
| virtual bool | is_saveable () const |
| Indicates if the object will be saved. More... | |
| virtual bool | has_settings () const |
| Indicates if get_settings() is implemented. More... | |
| virtual ObjectSettings | get_settings () |
| virtual void | after_editor_set () |
| bool | is_valid () const |
| returns true if the object is not scheduled to be removed yet | |
| void | remove_me () |
| schedules this object to be removed at the end of the frame | |
| void | add_remove_listener (ObjectRemoveListener *listener) |
| registers a remove listener which will be called if the object gets removed/destroyed | |
| void | del_remove_listener (ObjectRemoveListener *listener) |
| unregisters a remove listener, so it will no longer be called if the object gets removed/destroyed | |
| void | set_name (const std::string &name) |
| const std::string & | get_name () const |
| virtual const std::string | get_icon_path () const |
| virtual void | stop_looping_sounds () |
| stops all looping sounds | |
| virtual void | play_looping_sounds () |
| continues all looping sounds | |
| template<typename T > | |
| T * | get_component () |
| void | add_component (std::unique_ptr< GameObjectComponent > component) |
| void | remove_component (GameObjectComponent *component) |
| virtual void | editor_delete () |
| The editor requested the deletion of the object. | |
| virtual void | editor_select () |
| The user clicked on the object in the editor and selected it. | |
| virtual void | editor_deselect () |
| The object got deselected. | |
| virtual void | editor_update () |
| Called each frame in the editor, used to keep linked objects together (e.g. More... | |
Protected Attributes | |
| std::string | m_name |
| a name for the gameobject, this is mostly a hint for scripts and for debugging, don't rely on names being set or being unique | |
Friends | |
| class | GameObjectManager |
Base class for all the things that make up Levels' Sectors.
Each sector of a level will hold a list of active GameObject while the game is played.
This class is responsible for:
|
pure virtual |
The GameObject should draw itself onto the provided DrawingContext if this function is called.
Implemented in LiveFireDormant, worldmap_editor::Teleporter, AmbientSound, FloatingImage, LiveFireAsleep, Camera, BicyclePlatform, TileMap, PneumaticPlatform, ParticleSystem, worldmap_editor::LevelDot, BonusBlock, Player, MovingSprite, TriggerBase, IceCrusher, ParticleSystem_Interactive, Climbable, Electrifier, BadGuy, Particles, SpriteParticle, TextArrayObject, SecretAreaTrigger, PathGameObject, worldmap::SpriteChange, SequenceTrigger, Background, MagicBlock, TextScroller, PlayerStatusHUD, Door, worldmap::Tux, Dispenser, TreeWillOWisp, RainSplash, ScriptTrigger, Switch, worldmap::LevelTile, Kugelblitz, Block, Gradient, SpawnPointMarker, TextObject, Thunderstorm, worldmap::SpecialTile, GhostTree, FloatingText, LevelTime, MusicObject, Flower, Light, SpecialRiser, Torch, Wind, worldmap::Teleporter, Stalactite, SkullTile, GrowUp, InfoBlock, InvisibleBlock, ScriptedObject, Spotlight, WeakBlock, Bullet, Candle, DisplayEffect, Firefly, PulsingLight, MarkerObject, AmbientLight, BouncyCoin, Explosion, Fireworks, InvisibleWall, SmokeCloud, Root, CoinRain, EndSequence, FallingCoin, PowerUp, Star, Lantern, Yeti, YetiStalactite, CoinExplode, EndSequenceFireworks, EndSequenceWalkLeft, EndSequenceWalkRight, and Fish.
|
inlinevirtual |
Called each frame in the editor, used to keep linked objects together (e.g.
platform on a path)
Reimplemented in TileMap, Coin, Platform, ResizeMarker, and NodeMarker.
|
inlinevirtual |
|
inlinevirtual |
Indicates if get_settings() is implemented.
If true the editor will display Tip and ObjectMenu.
Reimplemented in ResizeMarker, and NodeMarker.
|
inlinevirtual |
Indicates if the object will be saved.
If false, the object will be skipped on saving and can't be cloned in the editor.
Reimplemented in Camera, Player, TextArrayObject, SpriteParticle, PlayerStatusHUD, TextObject, Gradient, MarkerObject, Electrifier, Particles, EndSequence, Bullet, BicyclePlatformChild, DisplayEffect, PneumaticPlatformChild, Explosion, Star, BouncyCoin, FallingCoin, Fireworks, SmokeCloud, CoinRain, FloatingText, RainSplash, Bomb, Flower, Light, SpecialRiser, CoinExplode, FloatingImage, GrowUp, and OneUp.
|
pure virtual |
This function is called once per frame and allows the object to update it's state.
The dt_sec is the time that has passed since the last frame in seconds and should be the base for all timed calculations (don't use SDL_GetTicks directly as this will fail in pause mode). This function is not called in the Editor.
Implemented in AmbientSound, HeavyCoin, FloatingImage, BicyclePlatform, Camera, PneumaticPlatform, TileMap, MovingSprite, Player, BadGuy, TriggerBase, IceCrusher, TextArrayObject, Climbable, Electrifier, Particles, SpriteParticle, worldmap::SpriteChange, Coin, PathGameObject, Platform, TextScroller, worldmap::Tux, worldmap::LevelTile, Background, MagicBlock, TextObject, PlayerStatusHUD, Door, worldmap::SpecialTile, RainSplash, Rock, Switch, Block, Gradient, Thunderstorm, Torch, worldmap::Teleporter, FloatingText, LevelTime, MusicObject, Flower, Light, SpecialRiser, Wind, CloudParticleSystem, GhostParticleSystem, PneumaticPlatformChild, RustyTrampoline, SkullTile, SpawnPointMarker, BicyclePlatformChild, GrowUp, InfoBlock, OneUp, ScriptedObject, SnowParticleSystem, Spotlight, UnstableTile, WeakBlock, Bullet, DisplayEffect, FallingCoin, Ispy, PulsingLight, RainParticleSystem, MarkerObject, AmbientLight, BouncyCoin, Explosion, Fireworks, SmokeCloud, Trampoline, WaterDrop, YetiStalactite, CoinRain, EndSequence, PowerUp, PushButton, Star, and CoinExplode.
1.8.12