Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
1.4 kB · 48 lines
C++
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include "stdafx.h"
#include "AbstractProjectileDispenseBehavior.h"#include "DispenserTile.h"#include "Projectile.h"#include "Level.h"#include "LevelEvent.h"#include "ItemInstance.h"
shared_ptr<ItemInstance> AbstractProjectileDispenseBehavior::execute(BlockSource *source, shared_ptr<ItemInstance> dispensed, eOUTCOME &outcome){ Level *world = source->getWorld(); if ( world->countInstanceOf(eTYPE_PROJECTILE, false) >= Level::MAX_DISPENSABLE_PROJECTILES ) { return DefaultDispenseItemBehavior::execute(source, dispensed, outcome); }
Position *position = DispenserTile::getDispensePosition(source); FacingEnum *facing = DispenserTile::getFacing(source->getData());
shared_ptr<Projectile> projectile = getProjectile(world, position);
delete position;
projectile->shoot(facing->getStepX(), facing->getStepY() + .1f, facing->getStepZ(), getPower(), getUncertainty()); world->addEntity(dynamic_pointer_cast<Entity>(projectile));
dispensed->remove(1); return dispensed;}
void AbstractProjectileDispenseBehavior::playSound(BlockSource *source, eOUTCOME outcome){ if (outcome != LEFT_ITEM) { source->getWorld()->levelEvent(LevelEvent::SOUND_LAUNCH, source->getBlockX(), source->getBlockY(), source->getBlockZ(), 0); }}
float AbstractProjectileDispenseBehavior::getUncertainty(){ return 6.0f;}
float AbstractProjectileDispenseBehavior::getPower(){ return 1.1f;}