Example #1
0
/**
 * Image Class Function
 *
 * @param class $siggen
 * @param array $data
 *    int x
 *    int y
 *    int width
 *    int height
 *
 * @return bool
 *
 * @uses image_static
 */
function image_class($siggen, $data)
{
    // This has a dependancy
    // Make sure we have it loaded
    $siggen->check_module('image_static');
    $data['file'] = 'class' . DIR_SEP . strtolower($siggen->tag->tags['classEn']['data']) . '.png';
    return image_static($siggen, $data);
}
Example #2
0
/**
 * GD Progress Bar Function
 *
 * @param class $siggen
 * @param array $data
 *		string value
 *		string max
 *		int x
 *		int y
 *		int x2
 *		int y2
 *		string color
 *		int alpha
 *		bool filled
 *		bool radius
 * 		string direction
 * 		bool border
 *		string border_color
 *		int border_alpha
 * 		bool background
 *		string background_color
 *		int background_alpha
 *
 * @return bool
 *
 * @uses gd_rectangle
 */
function gd_progress($siggen, $data)
{
    // This has a dependancy
    // Make sure we have it loaded
    $siggen->check_module('gd_rectangle');
    // Are we using a border?
    if ($data['border']) {
        $border = array('color' => $data['border_color'], 'alpha' => $data['border_alpha'], 'x' => $data['x'] - 1, 'y' => $data['y'] - 1, 'x2' => $data['x2'] + 1, 'y2' => $data['y2'] + 1, 'radius' => $data['radius'], 'filled' => 0);
        gd_rectangle($siggen, $border);
    }
    // Are we filling the background?
    if ($data['background']) {
        $background = array('color' => $data['background_color'], 'alpha' => $data['background_alpha'], 'x' => $data['x'], 'y' => $data['y'], 'x2' => $data['x2'], 'y2' => $data['y2'], 'radius' => $data['radius'], 'filled' => 1);
        gd_rectangle($siggen, $background);
    }
    // Draw the actual progress bar
    switch ($data['direction']) {
        case 'up':
            $length = $data['y2'] - $data['y'];
            $location = $data['value'] > 0 ? round($data['value'] / $data['max'] * $length - $data['y2'], 0) : $data['y2'];
            $bar = array('color' => $data['color'], 'alpha' => $data['alpha'], 'x' => $data['x'], 'y' => $location, 'x2' => $data['x2'], 'y2' => $data['y2'], 'radius' => $data['radius'], 'filled' => $data['filled']);
            gd_rectangle($siggen, $bar);
            break;
        case 'down':
            $length = $data['y2'] - $data['y'];
            $location = $data['value'] > 0 ? round($data['value'] / $data['max'] * $length + $data['y'], 0) : 0;
            $bar = array('color' => $data['color'], 'alpha' => $data['alpha'], 'x' => $data['x'], 'y' => $data['y'], 'x2' => $data['x2'], 'y2' => $location, 'radius' => $data['radius'], 'filled' => $data['filled']);
            gd_rectangle($siggen, $bar);
            break;
        case 'right':
            $length = $data['x2'] - $data['x'];
            $location = $data['value'] > 0 ? round($data['value'] / $data['max'] * $length + $data['x'], 0) : 0;
            $bar = array('color' => $data['color'], 'alpha' => $data['alpha'], 'x' => $location, 'y' => $data['y'], 'x2' => $data['x2'], 'y2' => $data['y2'], 'radius' => $data['radius'], 'filled' => $data['filled']);
            gd_rectangle($siggen, $bar);
            break;
        case 'left':
        default:
            $length = $data['x2'] - $data['x'];
            $location = $data['value'] > 0 ? round($data['value'] / $data['max'] * $length - $data['x2'], 0) : 0;
            $bar = array('color' => $data['color'], 'alpha' => $data['alpha'], 'x' => $data['x'], 'y' => $data['y'], 'x2' => $location, 'y2' => $data['y2'], 'radius' => $data['radius'], 'filled' => $data['filled']);
            gd_rectangle($siggen, $bar);
            break;
    }
    return TRUE;
}
Example #3
0
/**
 * Text Skills Block Function
 *
 * @param class $siggen
 * @param array $data
 * 		int x
 * 		int y
 * 		string color
 * 		int alpha
 * 		int size
 * 		string font
 * 		int angle
 * 		array outline
 * 		array shadow
 *
 * 		int desc_x
 * 		int desc_y
 * 		int level_x
 * 		int level_y
 * 		bool primary
 * 		bool secondary
 * 		bool riding
 * 		bool disp_desc
 * 		bool disp_level
 * 		int desc_length
 * 		int align_desc
 * 		int align_level
 * 		bool disp_levelmax
 * 		int desc_linespace
 * 		int level_linespace
 * 		int desc_gap
 * 		int level_gap
 *
 * @return bool
 *
 * @uses text_static
 */
function text_skills_block($siggen, $data)
{
    global $roster;
    if (isset($siggen->tag->tags['professions'])) {
        // This has a dependancy
        // Make sure we have it loaded
        $siggen->check_module('text_static');
        $skills_raw = explode(',', $siggen->tag->tags['professions']['data']);
        foreach ($skills_raw as $skill_set) {
            $skill = explode('|', $skill_set);
            $level = explode(':', $skill[2]);
            $skills[$skill[0]][$skill[1]]['value'] = $level[0];
            $skills[$skill[0]][$skill[1]]['max'] = $level[1];
        }
        $professions = $roster->locale->wordings[$siggen->tag->tags['clientLocale']['data']]['professions'];
        $secondary = $roster->locale->wordings[$siggen->tag->tags['clientLocale']['data']]['secondary'];
        $riding = $roster->locale->wordings[$siggen->tag->tags['clientLocale']['data']]['riding'];
        // Display Primary skills
        if ($data['primary']) {
            foreach ($skills[$professions] as $skill => $skill_data) {
                // Print Skill description
                if ($data['disp_desc']) {
                    // Shorten long strings based on max length in config
                    if (strlen($skill) > $data['desc_length']) {
                        $skill = trim(substr($skill, 0, $data['desc_length'])) . '.';
                    }
                    $text = array('size' => $data['size'], 'angle' => $data['angle'], 'x' => $data['desc_x'], 'y' => $data['desc_y'], 'color' => $data['color'], 'alpha' => $data['alpha'], 'font' => $data['font'], 'text' => $skill, 'align' => $data['align_desc'], 'outline' => $data['outline'], 'shadow' => $data['shadow']);
                    text_static($siggen, $text);
                }
                // Print Skill level
                if ($data['disp_level']) {
                    // Print max level if turned on in config
                    if ($data['disp_levelmax']) {
                        $level = $skill_data['value'] . ':' . $skill_data['max'];
                    } else {
                        $level = $skill_data['value'];
                    }
                    $text = array('size' => $data['size'], 'angle' => $data['angle'], 'x' => $data['level_x'], 'y' => $data['level_y'], 'color' => $data['color'], 'alpha' => $data['alpha'], 'font' => $data['font'], 'text' => $level, 'align' => $data['align_level'], 'outline' => $data['outline'], 'shadow' => $data['shadow']);
                    text_static($siggen, $text);
                }
                // Move the line position
                $data['desc_y'] += $data['desc_linespace'];
                $data['level_y'] += $data['level_linespace'];
            }
            // Place a gap based on config
            $data['desc_y'] += $data['desc_gap'];
            $data['level_y'] += $data['level_gap'];
        }
        // Display Secondary skills
        if ($data['secondary']) {
            foreach ($skills[$secondary] as $skill => $skill_data) {
                // Print only secondary skills where the max level does not equal 1
                if ($skill_data['max'] != '1' && $skill != $roster->locale->wordings[$siggen->tag->tags['clientLocale']['data']]['riding']) {
                    // Print Skill description
                    if ($data['disp_desc']) {
                        // Shorten long strings based on max length in config
                        if (strlen($skill) > $data['desc_length']) {
                            $skill = trim(substr($skill, 0, $data['desc_length'])) . '.';
                        }
                        $text = array('size' => $data['size'], 'angle' => $data['angle'], 'x' => $data['desc_x'], 'y' => $data['desc_y'], 'color' => $data['color'], 'alpha' => $data['alpha'], 'font' => $data['font'], 'text' => $skill, 'align' => $data['align_desc'], 'outline' => $data['outline'], 'shadow' => $data['shadow']);
                        text_static($siggen, $text);
                    }
                    // Print Skill level
                    if ($data['disp_level']) {
                        // Print max level if turned on in config
                        if ($data['disp_levelmax']) {
                            $level = $skill_data['value'] . ':' . $skill_data['max'];
                        } else {
                            $level = $skill_data['value'];
                        }
                        $text = array('size' => $data['size'], 'angle' => $data['angle'], 'x' => $data['level_x'], 'y' => $data['level_y'], 'color' => $data['color'], 'alpha' => $data['alpha'], 'font' => $data['font'], 'text' => $level, 'align' => $data['align_level'], 'outline' => $data['outline'], 'shadow' => $data['shadow']);
                        text_static($siggen, $text);
                    }
                    // Move the line position
                    $data['desc_y'] += $data['desc_linespace'];
                    $data['level_y'] += $data['level_linespace'];
                }
            }
            // Place a gap based on config
            $data['desc_y'] += $data['desc_gap'];
            $data['level_y'] += $data['level_gap'];
        }
        // Display Riding Info
        if ($data['riding']) {
            $value = $skills[$roster->locale->wordings[$siggen->tag->tags['clientLocale']['data']]['secondary']][$riding]['value'];
            $max = $skills[$roster->locale->wordings[$siggen->tag->tags['clientLocale']['data']]['secondary']][$riding]['max'];
            // Shorten long strings based on max length in config
            if (strlen($riding) > $data['desc_length']) {
                $riding = trim(substr($riding, 0, $data['desc_length'])) . '.';
            }
            $text = array('size' => $data['size'], 'angle' => $data['angle'], 'x' => $data['desc_x'], 'y' => $data['desc_y'], 'color' => $data['color'], 'alpha' => $data['alpha'], 'font' => $data['font'], 'text' => $riding, 'align' => $data['align_desc'], 'outline' => $data['outline'], 'shadow' => $data['shadow']);
            text_static($siggen, $text);
            // Print Skill level
            if ($data['disp_level']) {
                // Print max level if turned on in config
                if ($data['disp_levelmax']) {
                    $level = $value . ':' . $max;
                } else {
                    $level = $value;
                }
                $text = array('size' => $data['size'], 'angle' => $data['angle'], 'x' => $data['level_x'], 'y' => $data['level_y'], 'color' => $data['color'], 'alpha' => $data['alpha'], 'font' => $data['font'], 'text' => $level, 'align' => $data['align_level'], 'outline' => $data['outline'], 'shadow' => $data['shadow']);
                text_static($siggen, $text);
            }
        }
    }
    return TRUE;
}