Above is my shadow sprite sheet. First off I can't get the mod to launch if I set the X and Y to 49, 89. I can set the X to 49, but anything above 66 Y causes the mod to fail to load. I get a nice little error that reads:
The given sprite position (left_top = 272x0) is completely outside the actual sprite image (size=265x372)
Sprite name:__rocket_turret__/graphics/entity/rocket-turret-gun-extension-shadow.png
It will load if I set the Y lower, but, it looks all funky:
The shadow sprite gets cut off. And if you notice there is some weird issue with the circled turret. All the rest look fine, but, this one is shifted way down. I don't understand the "shift =" code very well so if someone could explain it to me, maybe I could fix these issues?
Here is the code for my entity:
Code: Select all
function rocket_turret_extension(inputs)
return
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-gun-extension.png",
priority = "medium",
width = 65,
height = 63,
direction_count = 4,
frame_count = inputs.frame_count and inputs.frame_count or 5,
line_length = inputs.line_length and inputs.line_length or 0,
run_mode = inputs.run_mode and inputs.run_mode or "forward",
shift = {0.015625, -0.859375},
axially_symmetrical = false
}
end
function rocket_turret_extension_shadow(inputs)
return
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-gun-extenstion-shadow.png",
width = 66,
height = 49,
direction_count = 4,
frame_count = inputs.frame_count and inputs.frame_count or 5,
line_length = inputs.line_length and inputs.line_length or 0,
run_mode = inputs.run_mode and inputs.run_mode or "forward",
shift = {1.20313, 0.015625},
axially_symmetrical = false,
draw_as_shadow = true
}
end
function rocket_turret_attack(inputs)
return
{
layers =
{
{
width = 66,
height = 64,
frame_count = inputs.frame_count and inputs.frame_count or 2,
axially_symmetrical = false,
direction_count = 64,
shift = {0, -0.875},
stripes =
{
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-gun-1.png",
width_in_frames = inputs.frame_count and inputs.frame_count or 2,
height_in_frames = 32,
},
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-gun-2.png",
width_in_frames = inputs.frame_count and inputs.frame_count or 2,
height_in_frames = 32,
}
}
},
{
width = 91,
height = 50,
frame_count = inputs.frame_count and inputs.frame_count or 2,
axially_symmetrical = false,
direction_count = 64,
shift = {1.23438, 0},
draw_as_shadow = true,
stripes =
{
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-gun-shadow-1.png",
width_in_frames = inputs.frame_count and inputs.frame_count or 2,
height_in_frames = 32,
},
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-gun-shadow-2.png",
width_in_frames = inputs.frame_count and inputs.frame_count or 2,
height_in_frames = 32,
}
}
}
}
}
end
data:extend({
{
type = "ammo-turret",
name = "rocket-turret",
icon = "__rocket_turret__/graphics/icons/rocket-turret.png",
flags = {"placeable-player", "player-creation"},
minable = {mining_time = 0.5, result = "rocket-turret"},
max_health = 1000,
resistances =
{
{
type = "physical",
decrease = 2,
percent = 0
},
{
type = "explosion",
decrease = 5,
percent = 90,
},
{
type = "fire",
decrease = 0,
percent = 100,
}
},
corpse = "medium-remnants",
collision_box = {{-0.7, -0.7 }, {0.7, 0.7}},
selection_box = {{-1, -1 }, {1, 1}},
rotation_speed = 0.015,
preparing_speed = 0.08,
folding_speed = 0.08,
dying_explosion = "medium-explosion",
inventory_size = 1,
automated_ammo_count = 10,
attacking_speed = 0.5,
turret_base_has_direction = true,
folded_animation =
{
layers =
{
rocket_turret_extension{frame_count=1, line_length = 1},
rocket_turret_extension_shadow{frame_count=1, line_length = 1}
}
},
preparing_animation =
{
layers =
{
rocket_turret_extension{},
rocket_turret_extension_shadow{}
}
},
prepared_animation = rocket_turret_attack{frame_count=1},
attacking_animation = rocket_turret_attack{},
folding_animation =
{
layers =
{
rocket_turret_extension{run_mode = "backward"},
rocket_turret_extension_shadow{run_mode = "backward"}
}
},
base_picture =
{
layers =
{
{
filename = "__rocket_turret__/graphics/entity/rocket-turret/rocket-turret-base.png",
priority = "high",
width = 90,
height = 75,
axially_symmetrical = false,
direction_count = 1,
frame_count = 1,
shift = {0, -0.046875},
},
}
},
vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 },
attack_parameters =
{
type = "projectile",
ammo_category = "rocket",
cooldown = 80,
projectile_creation_distance = 1.39375,
projectile_center = {0, -0.0875}, -- same as gun_turret_attack shift
shell_particle =
{
name = "shell-particle",
direction_deviation = 0.1,
speed = 0.1,
speed_deviation = 0.03,
center = {-0.0625, 0},
creation_distance = -1.925,
starting_frame_speed = 0.2,
starting_frame_speed_deviation = 0.1
},
range = 28,
min_range = 8,
turn_range = .45,
sound =
{
{
filename = "__base__/sound/fight/rocket-launcher.ogg",
volume = 0.5
}
}
},
call_for_help_radius = 40
}})