SuperTuxKart
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
Cake Class Reference
Inheritance diagram for Cake:
Inheritance graph
[legend]

Public Member Functions

 Cake (AbstractKart *kart)
 
virtual bool hit (AbstractKart *kart, PhysicalObject *obj=NULL) OVERRIDE
 Callback from the physics in case that a kart or physical object is hit. More...
 
virtual void hitTrack () OVERRIDE
 Called when this flyable hits the track. More...
 
virtual const btVector3 & getVelocity () const OVERRIDE
 Kinematic objects are not allowed to have a velocity (assertion in bullet), so we have to do our own velocity handling here. More...
 
virtual void setVelocity (const btVector3 &v) OVERRIDE
 Kinematic objects are not allowed to have a velocity (assertion in bullet), so we have to do our own velocity handling here. More...
 
virtual void onFireFlyable () OVERRIDE
 Call when the item is (re-)fired (during rewind if needed) by projectile_manager. More...
 
- Public Member Functions inherited from Flyable
 Flyable (AbstractKart *kart, PowerupManager::PowerupType type, float mass=1.0f)
 
void updateGraphics (float dt) OVERRIDE
 Called once per rendered frame. More...
 
virtual bool updateAndDelete (int ticks)
 Updates this flyable. More...
 
virtual void setAnimation (AbstractKartAnimation *animation)
 
virtual HitEffectgetHitEffect () const
 Returns the hit effect object to use when this objects hits something. More...
 
bool isOwnerImmunity (const AbstractKart *kart_hit) const
 Returns true if the item hit the kart who shot it (to avoid that an item that's too close to the shooter hits the shooter). More...
 
void explode (AbstractKart *kart, PhysicalObject *obj=NULL, bool secondary_hits=true)
 Creates the explosion physical effect, i.e. More...
 
unsigned int getOwnerId ()
 
bool hasAnimation () const
 Returns if this flyable has an animation playing (e.g. More...
 
void setAdjustUpVelocity (bool f)
 If true the up velocity of the flyable will be adjust so that the flyable stays at a height close to the average height. More...
 
void setPositionOffset (const Vec3 &o)
 Sets the offset to be used when determining the terrain under the flyable. More...
 
bool hasHit ()
 Enables/disables adjusting ov velocity depending on height above terrain. More...
 
void setHasHit ()
 Indicates that something was hit and that this object must be removed. More...
 
void reset () OVERRIDE
 Resets this flyable. More...
 
PowerupManager::PowerupType getType () const
 Returns the type of flyable. More...
 
AbstractKartgetOwner () const
 Returns the owner's kart.
 
void setDoTerrainInfo (bool d)
 Sets wether Flyable should update TerrainInfo as part of its update call, or if the inheriting object will update TerrainInfo itself (or perhaps not at all if it is not needed). More...
 
const Vec3getExtend () const
 Returns the size (extend) of the mesh. More...
 
void addForRewind (const std::string &uid)
 
virtual void undoEvent (BareNetworkString *buffer) OVERRIDE
 Called when an event needs to be undone. More...
 
virtual void rewindToEvent (BareNetworkString *buffer) OVERRIDE
 Called when an event needs to be replayed. More...
 
virtual void undoState (BareNetworkString *buffer) OVERRIDE
 Undo the effects of the given state, but do not rewind to that state (which is done by rewindTo). More...
 
virtual void saveTransform () OVERRIDE
 Called before a rewind. More...
 
virtual void computeError () OVERRIDE
 Called when a rewind is finished, and is used to compute the error caused by the rewind (which is then visually smoothed over time). More...
 
virtual BareNetworkStringsaveState (std::vector< std::string > *ru) OVERRIDE
 Provides a copy of the state of the object in one memory buffer. More...
 
virtual void restoreState (BareNetworkString *buffer, int count) OVERRIDE
 Called when a state needs to be replayed. More...
 
bool hasServerState () const
 
virtual void onDeleteFlyable ()
 
void setCreatedTicks (int ticks)
 
- Public Member Functions inherited from Moveable
scene::ISceneNode * getNode () const
 Returns the scene node of this moveable. More...
 
void setNode (scene::ISceneNode *n)
 Sets the mesh for this model. More...
 
const btVector3 & getVelocityLC () const
 
const Vec3getXYZ () const
 
float getHeading () const
 Returns the heading between -pi and pi. More...
 
float getPitch () const
 Returns the pitch of the kart, restricted to between -pi/2 and pi/2. More...
 
float getRoll () const
 Returns the roll of the kart between -pi and pi. More...
 
const btQuaternion getRotation () const
 
virtual void flyUp ()
 Enter flying mode.
 
virtual void flyDown ()
 
virtual void stopFlying ()
 
virtual void setXYZ (const Vec3 &a)
 Sets the XYZ coordinates of the moveable. More...
 
void setRotation (const btMatrix3x3 &m)
 Sets the rotation of the physical body this moveable. More...
 
void setRotation (const btQuaternion &q)
 Sets the rotation of the physical body this moveable. More...
 
virtual void update (int ticks)
 Updates the current position and rotation from the corresponding physics body, and then calls updateGraphics to position the model correctly. More...
 
btRigidBody * getBody () const
 
void createBody (float mass, btTransform &trans, btCollisionShape *shape, float restitution)
 Creates the bullet rigid body for this moveable. More...
 
const btTransform & getTrans () const
 
void setTrans (const btTransform &t)
 Places this moveable at a certain location and stores this transform in this Moveable, so that it can be accessed easily. More...
 
void updatePosition ()
 Updates the current position and rotation. More...
 
void prepareSmoothing ()
 
void checkSmoothing ()
 
const btTransform & getSmoothedTrans () const
 
const Vec3getSmoothedXYZ () const
 
virtual const std::string & getIdent () const
 
- Public Member Functions inherited from SmoothNetworkBody
 SmoothNetworkBody (bool enable=false)
 
void reset ()
 
void setEnable (bool val)
 
bool isEnabled () const
 
void setSmoothRotation (bool val)
 
void setAdjustVerticalOffset (bool val)
 
void prepareSmoothing (const btTransform &current_transform, const Vec3 &current_velocity)
 
void checkSmoothing (const btTransform &current_transform, const Vec3 &current_velocity)
 Adds a new error between graphical and physical position/rotation. More...
 
void updateSmoothedGraphics (const btTransform &current_transform, const Vec3 &current_velocity, float dt)
 
void setSmoothedTransform (const btTransform &t)
 
const btTransform & getSmoothedTrans () const
 
const Vec3getSmoothedXYZ () const
 
void setMinAdjustLength (float val)
 
void setMaxAdjustLength (float val)
 
void setMinAdjustSpeed (float val)
 
void setMaxAdjustTime (float val)
 
void setAdjustLengthThreshold (float val)
 
- Public Member Functions inherited from TerrainInfo
 TerrainInfo ()
 Constructor to initialise terrain data.
 
 TerrainInfo (const Vec3 &pos)
 Constructor to initialise terrain data at a given position. More...
 
bool getSurfaceInfo (const Vec3 &from, Vec3 *position, const Material **m)
 Does a raycast upwards from the given position If the raycast indicated that the kart is 'under something' (i.e. More...
 
virtual void update (const btMatrix3x3 &rotation, const Vec3 &from)
 Update the terrain information based on the latest position. More...
 
virtual void update (const Vec3 &from)
 Update the terrain information based on the latest position. More...
 
virtual void update (const Vec3 &from, const Vec3 &towards)
 Update the terrain information based on the latest position. More...
 
virtual void update (const btMatrix3x3 &rotation)
 Simple wrapper with no offset. More...
 
float getHoT () const
 Returns the height of the terrain. More...
 
const MaterialgetMaterial () const
 Returns the current material the kart is on. More...
 
const MaterialgetLastMaterial () const
 Returns the previous material the kart was one (which might be the same as getMaterial() ). More...
 
const Vec3getNormal () const
 Returns the normal of the terrain the kart is on. More...
 
float getTerrainPitch (float heading) const
 Returns the pitch of the terrain depending on the heading. More...
 
const btVector3 & getHitPoint () const
 Returns the hit point of the raycast. More...
 
const Vec3getOrigin () const
 
- Public Member Functions inherited from Rewinder
 Rewinder (const std::string &ui="")
 
virtual std::function< void()> getLocalStateRestoreFunction ()
 
const std::string & getUniqueIdentity () const
 
bool rewinderAdd ()
 Add this object to the list of all rewindable objects in the rewind manager.
 
template<typename T >
std::shared_ptr< T > getShared ()
 

Static Public Member Functions

static void init (const XMLNode &node, scene::IMesh *cake_model)
 Initialises the object from an entry in the powerup.xml file. More...
 
- Static Public Member Functions inherited from Flyable
static void init (const XMLNode &node, scene::IMesh *model, PowerupManager::PowerupType type)
 Initialises the static members of this class for a certain type with default values and with settings from powerup.xml. More...
 

Private Attributes

btVector3 m_initial_velocity
 
Moveablem_target
 Which kart is targeted by this projectile (NULL if none). More...
 

Static Private Attributes

static float m_st_max_distance_squared
 Maximum distance for a missile to be attracted. More...
 
static float m_gravity
 

Additional Inherited Members

- Protected Member Functions inherited from Flyable
void getClosestKart (const AbstractKart **minKart, float *minDistSquared, Vec3 *minDelta, const AbstractKart *inFrontOf=NULL, const bool backwards=false) const
 Returns information on what is the closest kart and at what distance it is. More...
 
void getLinearKartItemIntersection (const Vec3 &origin, const AbstractKart *target_kart, float item_XY_velocity, float gravity, float forw_offset, float *fire_angle, float *up_velocity)
 Returns information on the parameters needed to hit a target kart moving at constant velocity and direction for a given speed in the XZ-plane. More...
 
void createPhysics (float y_offset, const Vec3 &velocity, btCollisionShape *shape, float restitution, const btVector3 &gravity=btVector3(0.0f, 0.0f, 0.0f), const bool rotates=false, const bool turn_around=false, const btTransform *customDirection=NULL)
 init bullet for moving objects like projectiles More...
 
void moveToInfinity (bool set_moveable_trans=true)
 It's called when undoing the creation or destruction of flyables, so that it will not affected the current game, and it will be deleted in computeError. More...
 
void removePhysics ()
 
- Protected Member Functions inherited from Moveable
void updateSmoothedGraphics (float dt)
 
virtual void updateGraphics (const Vec3 &off_xyz=Vec3(0.0f, 0.0f, 0.0f), const btQuaternion &off_rotation=btQuaternion(0.0f, 0.0f, 0.0f, 1.0f))
 Updates the graphics model. More...
 
- Protected Member Functions inherited from Rewinder
void setUniqueIdentity (const std::string &uid)
 
- Protected Attributes inherited from Flyable
AbstractKartm_owner
 Kart which shot this flyable. More...
 
PowerupManager::PowerupType m_type
 Type of the powerup. More...
 
btCollisionShape * m_shape
 Collision shape of this Flyable. More...
 
float m_max_height
 Maximum height above terrain. More...
 
float m_min_height
 Minimum height above terrain. More...
 
float m_average_height
 Average of average of m_{min,ax}_height. More...
 
float m_force_updown
 Force pushing the Flyable up. More...
 
float m_speed
 Speed of this Flyable. More...
 
const float m_mass
 Mass of this Flyable. More...
 
Vec3 m_extend
 Size of this flyable. More...
 
uint16_t m_ticks_since_thrown
 Time since thrown. More...
 
bool m_has_server_state
 
bool m_owner_has_temporary_immunity
 If set to true, the kart that throwns this flyable can't collide with it for a short time. More...
 
bool m_deleted_once
 
int m_last_deleted_ticks
 
int m_max_lifespan
 Set to something > -1 if this flyable should auto-destrcut after that may ticks. More...
 
int m_created_ticks
 
- Protected Attributes inherited from Moveable
btTransform m_transform
 The bullet transform of this rigid body. More...
 
UserPointer m_user_pointer
 
scene::ISceneNode * m_node
 
std::unique_ptr< btRigidBody > m_body
 
std::unique_ptr< KartMotionStatem_motion_state
 
- Static Protected Attributes inherited from Flyable
static float m_st_speed [PowerupManager::POWERUP_MAX]
 Speed of the projectile. More...
 
static scene::IMesh * m_st_model [PowerupManager::POWERUP_MAX]
 The mesh of this Flyable. More...
 
static float m_st_min_height [PowerupManager::POWERUP_MAX]
 Minimum height above track. More...
 
static float m_st_max_height [PowerupManager::POWERUP_MAX]
 Max height above track. More...
 
static float m_st_force_updown [PowerupManager::POWERUP_MAX]
 Force pushing up/down. More...
 
static Vec3 m_st_extend [PowerupManager::POWERUP_MAX]
 Size of the model. More...
 

Member Function Documentation

◆ getVelocity()

virtual const btVector3& Cake::getVelocity ( ) const
inlinevirtual

Kinematic objects are not allowed to have a velocity (assertion in bullet), so we have to do our own velocity handling here.

This function returns the velocity of this object.

Reimplemented from Moveable.

◆ hit()

bool Cake::hit ( AbstractKart kart,
PhysicalObject obj = NULL 
)
virtual

Callback from the physics in case that a kart or physical object is hit.

The cake triggers an explosion when hit.

Parameters
kartThe kart hit (NULL if no kart was hit).
objectThe object that was hit (NULL if none).
Returns
True if there was actually a hit (i.e. not owner, and target is not immune), false otherwise.

Reimplemented from Flyable.

◆ hitTrack()

virtual void Cake::hitTrack ( )
inlinevirtual

Called when this flyable hits the track.

Reimplemented from Flyable.

◆ init()

void Cake::init ( const XMLNode node,
scene::IMesh *  cake_model 
)
static

Initialises the object from an entry in the powerup.xml file.

Parameters
nodeThe xml node for this object.
cakde_modelThe mesh model of the cake.

◆ onFireFlyable()

void Cake::onFireFlyable ( )
virtual

Call when the item is (re-)fired (during rewind if needed) by projectile_manager.

Reimplemented from Flyable.

◆ setVelocity()

virtual void Cake::setVelocity ( const btVector3 &  v)
inlinevirtual

Kinematic objects are not allowed to have a velocity (assertion in bullet), so we have to do our own velocity handling here.

This function sets the velocity of this object.

Parameters
vLinear velocity of this object.

Reimplemented from Moveable.

Member Data Documentation

◆ m_st_max_distance_squared

float Cake::m_st_max_distance_squared
staticprivate

Maximum distance for a missile to be attracted.

◆ m_target

Moveable* Cake::m_target
private

Which kart is targeted by this projectile (NULL if none).


The documentation for this class was generated from the following files: