Skip to content

Instantly share code, notes, and snippets.

@pwood
Created January 11, 2013 19:36
Show Gist options
  • Save pwood/4513345 to your computer and use it in GitHub Desktop.
Save pwood/4513345 to your computer and use it in GitHub Desktop.
require 'yaml'
require 'pp'
import = "/home/server/Caldonia/plugins/Residence/Save/Worlds/res_world.yml-orig"
plots = {
"Emerald" => { :position => 0, :side => 0, :floor => 0 },
"Iron" => { :position => 1, :side => 0, :floor => 0 },
"White" => { :position => 2, :side => 0, :floor => 0 },
"Orange" => { :position => 3, :side => 0, :floor => 0 },
"Magenta" => { :position => 4, :side => 0, :floor => 0 },
"Diamond" => { :position => 0, :side => 1, :floor => 0 },
"Gold" => { :position => 1, :side => 1, :floor => 0 },
"LightBlue" => { :position => 2, :side => 1, :floor => 0 },
"Yellow" => { :position => 3, :side => 1, :floor => 0 },
"Lime" => { :position => 4, :side => 1, :floor => 0 },
"Black" => { :position => 0, :side => 0, :floor => 1 },
"Red" => { :position => 1, :side => 0, :floor => 1 },
"Green" => { :position => 2, :side => 0, :floor => 1 },
"Brown" => { :position => 3, :side => 0, :floor => 1 },
"Blue" => { :position => 4, :side => 0, :floor => 1 },
"Pink" => { :position => 0, :side => 1, :floor => 1 },
"DarkGrey" => { :position => 1, :side => 1, :floor => 1 },
"LightGrey" => { :position => 2, :side => 1, :floor => 1 },
"Cyan" => { :position => 3, :side => 1, :floor => 1 },
"Purple" => { :position => 4, :side => 1, :floor => 1 }
}
BASE = {
"Sign" => { :x1 => 36, :y1 => 65, :z1 => 253, :x2 => 36, :y2 => 65, :z2 => 252, :side_flip => 7 },
"Main" => { :x1 => 43, :y1 => 66, :z1 => 255, :x2 => 38, :y2 => 63, :z2 => 250, :side_flip => 0 },
"Door" => { :x1 => 37, :y1 => 64, :z1 => 253, :x2 => 37, :y2 => 63, :z2 => 252, :side_flip => 7 }
}
data = YAML::load(File.open(import))
data["Residences"]["LC"]["Subzones"].delete("Emerald")
plots.each_pair do |name,info|
subzone = {
"EnterMessage" => nil,
"BlackList" => { "Type" => "BLACKLIST", "ItemList" => [] },
"LeaveMessage" => nil,
"IgnoreList" => { "Type" => "IGNORELIST", "ItemList" => [] },
"Subzones" => {},
"Permissions" => {
"PlayerFlags" => {
"server land" => {
"container" => true,
"ignite" => true,
"use" => true,
"build" => true,
"move" => true
}
},
"GroupFlags" => {},
"AreaFlags" => {
"pvp" => false,
"firespread" => false,
"container" => false,
"tnt" => false,
"ignite" => false,
"piston" => false,
"use" => false,
"creeper" => false,
"flow" => false,
"build" => false
},
"Owner" => "Server Land",
"World" => "world"
},
"StoredMoney" => 0,
"Areas" => {}
}
BASE.each_pair do |b_name, b_value|
subzone["Areas"]["#{name}#{b_name}"] = {}
subzone["Areas"]["#{name}#{b_name}"]["X1"] = b_value[:x1] - (info[:side] == 0 ? 0 : 28) + (info[:side] == 0 ? 0 : b_value[:side_flip])
subzone["Areas"]["#{name}#{b_name}"]["Y1"] = b_value[:y1] + (info[:floor] == 0 ? 0 : 7)
subzone["Areas"]["#{name}#{b_name}"]["Z1"] = b_value[:z1] + (7 * info[:position])
subzone["Areas"]["#{name}#{b_name}"]["X2"] = b_value[:x2] - (info[:side] == 0 ? 0 : 28) + (info[:side] == 0 ? 0 : b_value[:side_flip])
subzone["Areas"]["#{name}#{b_name}"]["Y2"] = b_value[:y2] + (info[:floor] == 0 ? 0 : 7)
subzone["Areas"]["#{name}#{b_name}"]["Z2"] = b_value[:z2] + (7 * info[:position])
end
data["Residences"]["LC"]["Subzones"]["#{name}"] = subzone
end
puts data.to_yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment