forked from OpenNeo/impress
rake task to quickly create prank pet types
This commit is contained in:
parent
b583254397
commit
58fdb3d6ac
1 changed files with 49 additions and 0 deletions
49
lib/tasks/pet_types.rake
Normal file
49
lib/tasks/pet_types.rake
Normal file
|
@ -0,0 +1,49 @@
|
|||
namespace :pet_types do
|
||||
namespace :pranks do
|
||||
desc 'Create a prank pet type with one state and one asset'
|
||||
task :create, [:color_id, :species_id, :body_id, :asset_remote_id, :asset_url, :female, :mood_id, :unconverted, :zones_restrict] => :environment do |t, args|
|
||||
args.with_defaults(female: false, mood_id: 1, unconverted: false,
|
||||
zone_id: 46, # static, used by UC pets
|
||||
zones_restrict: '0000000000000000000000000000000000000000000000000000')
|
||||
PetType.transaction do
|
||||
swf_asset = SwfAsset.new
|
||||
swf_asset.type = 'biology'
|
||||
swf_asset.remote_id = args[:asset_remote_id]
|
||||
swf_asset.url = args[:asset_url]
|
||||
swf_asset.zone_id = args[:zone_id]
|
||||
swf_asset.zones_restrict = args[:zones_restrict]
|
||||
swf_asset.body_id = 0 # biology assets use 0, not pet type's body id
|
||||
swf_asset.has_image = false
|
||||
swf_asset.image_requested = false
|
||||
swf_asset.save! # get it an ID
|
||||
puts "Asset #{swf_asset.inspect} created"
|
||||
|
||||
pet_type = PetType.new
|
||||
pet_type.color_id = args[:color_id]
|
||||
pet_type.species_id = args[:species_id]
|
||||
pet_type.body_id = args[:body_id]
|
||||
# This isn't really a valid image hash, but we can teach PetType to
|
||||
# use this override when reporting its image URLs.
|
||||
pet_type.image_hash = "asset:#{swf_asset.id}"
|
||||
pet_type.save!
|
||||
puts "Pet type #{pet_type.inspect} created"
|
||||
|
||||
pet_state = pet_type.pet_states.build
|
||||
pet_state.swf_asset_ids = "#{swf_asset.id}"
|
||||
pet_state.female = args[:female]
|
||||
pet_state.mood_id = args[:mood_id]
|
||||
pet_state.unconverted = args[:unconverted]
|
||||
pet_state.labeled = true
|
||||
pet_state.glitched = false
|
||||
pet_state.save!
|
||||
puts "Pet state #{pet_state.inspect} created"
|
||||
|
||||
parent_swf_asset_relationship = ParentSwfAssetRelationship.new
|
||||
parent_swf_asset_relationship.parent = pet_state
|
||||
parent_swf_asset_relationship.swf_asset = swf_asset
|
||||
parent_swf_asset_relationship.save!
|
||||
puts "Relationship #{parent_swf_asset_relationship.inspect} created"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue