class Pettanr.CircleSpeechBalloon class Pettanr.CircleSpeechBalloon.SpeechBalloon extends Backbone.Model # OMG... this model is not petanized item # it means that can't change name base_name: () -> "circle_speech_balloons" baseName: () -> "CircleSpeechBalloon" item_name: () -> @base_name() + '/speech_balloon' table_name: () -> @base_name() + '/speech_balloons' singular: () -> @baseName() + '/SpeechBalloon' plural: () -> @baseName() + '/SpeechBalloons' engine_name: () -> @table_name() form_name: () -> @engine_name() + '/speech_balloons' class Pettanr.CircleSpeechBalloon.Balloon extends Backbone.Model # OMG... this model is not petanized item # it means that can't change name base_name: () -> "circle_speech_balloons" baseName: () -> "CircleSpeechBalloon" item_name: () -> @base_name() + '/balloon' table_name: () -> @base_name() + '/balloons' singular: () -> @baseName() + '/Balloon' plural: () -> @baseName() + '/Balloons' engine_name: () -> @table_name() form_name: () -> @engine_name() + '/balloons' class Pettanr.CircleSpeechBalloon.Speech extends Backbone.Model # OMG... this model is not petanized item # it means that can't change name base_name: () -> "circle_speech_balloons" baseName: () -> "CircleSpeechBalloon" item_name: () -> @base_name() + '/speech' table_name: () -> @base_name() + '/speeches' singular: () -> @baseName() + '/Speech' plural: () -> @baseName() + '/Speeches' engine_name: () -> @table_name() form_name: () -> @engine_name() + '/speeches' class Pettanr.CircleSpeechBalloon.SpeechBalloonModule supply_default: () -> speech_balloon_extend: () -> @new_speech_balloon() if not @sbex @sbex speech_balloon_extend_setter: (params) -> # load attributes @sbex = new Pettanr.CircleSpeechBalloon.SpeechBalloon(params) # no supply default params new_speech_balloon: (params = {}) -> @sbex = new Pettanr.CircleSpeechBalloon.SpeechBalloon(params) @sbex.supply_default() class Pettanr.CircleSpeechBalloon.BalloonModule supply_default: () -> @set({ x: 0, y: 0, width: @parsed_settings()['speech_balloon']['default_width'], height: @parsed_settings()['speech_balloon']['default_height'], r: @parsed_settings()['speech_balloon']['default_r'] }) @select_system_picture() balloon_extend: () -> @new_balloon() if not @bex @bex balloon_extend_setter: (params) -> # load attributes @bex = new Pettanr.CircleSpeechBalloon.Balloon(params) # no supply default params new_balloon: (params = {}) -> @bex = new Pettanr.CircleSpeechBalloon.Balloon(params) @bex.supply_default() parsed_settings: () -> return @parsed if @parsed @parsed = @templates.speech_balloon_template.parsed_settings() select_system_picture: () -> idx = @r_to_index(@round_r(@get('r'))) sid = @parsed_settings()[Pettanr.to_s(idx)]['balloon']['system_picture_id'] @set({system_picture_id: sid}, {silent: true}) sid r_step: () -> @parsed_settings()['speech_balloon']['r_step'] # round 0 ~ 359 round_r: (r) -> tr = r % 360 tr = 360 + tr if tr < 0 tr r_to_index: (round_r) -> # 0 ~ 45 -> 22.5 ~ 66.5 offset = @r_step() / 2.0 # rounded index Math.floor(((round_r + offset) % 360) / @r_step()) class Pettanr.CircleSpeechBalloon.SpeechModule supply_default: () -> s = @parsed_settings()['0']['speech'] @set({ x: s['x_rate'], y: s['y_rate'], width: s['width_rate'], height: s['height_rate'], quotes: @parsed_settings()['speech_balloon']['quotes'], font_size: @parsed_settings()['speech_balloon']['default_font_size'], text_align: @parsed_settings()['speech_balloon']['default_text_align'], fore_color: @parsed_settings()['speech_balloon']['default_fore_color'], }) speech_extend: () -> @sex speech_extend_setter: (params) -> # load attributes @sex = new Pettanr.CircleSpeechBalloon.Speech(params) # no supply default params new_speech: (params = {}) -> @sex = new Pettanr.CircleSpeechBalloon.Speech(params) @sex.supply_default() parsed_settings: () -> return @parsed if @parsed @parsed = @templates.speech_balloon_template.parsed_settings() arrayed_quotes: () -> q = if Pettanr.is_blank(@get('quotes')) Pettanr.to_s(@parsed_settings()['speech_balloon']['quotes']) else @get('quotes') q.split(' ')