BlueprintRef Blueprint::SplitBlueprint(int32 qty_to_take, bool notify) { // split item BlueprintRef res = BlueprintRef::StaticCast( InventoryItem::Split( qty_to_take, notify ) ); if( !res ) return BlueprintRef(); // copy our attributes res->SetCopy(m_copy); res->SetMaterialLevel(m_materialLevel); res->SetProductivityLevel(m_productivityLevel); res->SetLicensedProductionRunsRemaining(m_licensedProductionRunsRemaining); return res; }
// command to modify blueprint's attributes, we have to give it blueprint's itemID ... // isn't much comfortable, but I don't know about better solution ... PyResult Command_setbpattr( Client* who, CommandDB* db, PyServiceMgr* services, const Seperator& args ) { if( args.argCount() < 6 ) { throw PyException( MakeCustomError("Correct Usage: /setbpattr [blueprintID] [0 (not copy) or 1 (copy)] [material level] [productivity level] [remaining runs]") ); } if( !args.isNumber( 1 ) ) throw PyException( MakeCustomError( "Argument 1 must be blueprint ID. (got %s)", args.arg( 1 ).c_str() ) ); const uint32 blueprintID = atoi( args.arg( 1 ).c_str() ); if( "0" != args.arg( 2 ) && "1" != args.arg( 2 ) ) throw PyException( MakeCustomError( "Argument 2 must be 0 (not copy) or 1 (copy). (got %s)", args.arg( 2 ).c_str() ) ); const bool copy = ( atoi( args.arg( 2 ).c_str() ) ? true : false ); if( !args.isNumber( 3 ) ) throw PyException( MakeCustomError( "Argument 3 must be material level. (got %s)", args.arg( 3 ).c_str() ) ); const uint32 materialLevel = atoi( args.arg( 3 ).c_str() ); if( !args.isNumber( 4 ) ) throw PyException( MakeCustomError( "Argument 4 must be productivity level. (got %s)", args.arg( 4 ).c_str() ) ); const uint32 productivityLevel = atoi( args.arg( 4 ).c_str() ); if( !args.isNumber( 5 ) ) throw PyException( MakeCustomError( "Argument 5 must be remaining licensed production runs. (got %s)", args.arg( 5 ).c_str() ) ); const uint32 licensedProductionRunsRemaining = atoi( args.arg( 5 ).c_str() ); BlueprintRef bp = services->item_factory.GetBlueprint( blueprintID ); if( !bp ) throw PyException( MakeCustomError( "Failed to load blueprint %u.", blueprintID ) ); bp->SetCopy( copy ); bp->SetMaterialLevel( materialLevel ); bp->SetProductivityLevel( productivityLevel ); bp->SetLicensedProductionRunsRemaining( licensedProductionRunsRemaining ); return new PyString( "Properties modified." ); }