OSDN Git Service

fix:
[pettanr/pettanr.git] / app / assets / javascripts / addons / circle_speech_balloons / init.js.coffee
1 class Pettanr.CircleSpeechBalloon\r
2   \r
3 class Pettanr.CircleSpeechBalloon.SpeechBalloon extends Backbone.Model\r
4   # OMG... this model is not petanized item\r
5   # it means that can't change name\r
6   base_name: () ->\r
7     "circle_speech_balloons"\r
8   \r
9   baseName: () ->\r
10     "CircleSpeechBalloon"\r
11   \r
12   item_name: () ->\r
13     @base_name() + '/speech_balloon'\r
14   \r
15   table_name: () ->\r
16     @base_name() + '/speech_balloons'\r
17   \r
18   singular: () ->\r
19     @baseName() + '/SpeechBalloon'\r
20   \r
21   plural: () ->\r
22     @baseName() + '/SpeechBalloons'\r
23   \r
24   engine_name: () ->\r
25     @table_name()\r
26   \r
27   form_name: () ->\r
28     @engine_name() + '/speech_balloons'\r
29 \r
30 class Pettanr.CircleSpeechBalloon.Balloon extends Backbone.Model\r
31   # OMG... this model is not petanized item\r
32   # it means that can't change name\r
33   base_name: () ->\r
34     "circle_speech_balloons"\r
35   \r
36   baseName: () ->\r
37     "CircleSpeechBalloon"\r
38   \r
39   item_name: () ->\r
40     @base_name() + '/balloon'\r
41   \r
42   table_name: () ->\r
43     @base_name() + '/balloons'\r
44   \r
45   singular: () ->\r
46     @baseName() + '/Balloon'\r
47   \r
48   plural: () ->\r
49     @baseName() + '/Balloons'\r
50   \r
51   engine_name: () ->\r
52     @table_name()\r
53   \r
54   form_name: () ->\r
55     @engine_name() + '/balloons'\r
56 \r
57 class Pettanr.CircleSpeechBalloon.Speech extends Backbone.Model\r
58   # OMG... this model is not petanized item\r
59   # it means that can't change name\r
60   base_name: () ->\r
61     "circle_speech_balloons"\r
62   \r
63   baseName: () ->\r
64     "CircleSpeechBalloon"\r
65   \r
66   item_name: () ->\r
67     @base_name() + '/speech'\r
68   \r
69   table_name: () ->\r
70     @base_name() + '/speeches'\r
71   \r
72   singular: () ->\r
73     @baseName() + '/Speech'\r
74   \r
75   plural: () ->\r
76     @baseName() + '/Speeches'\r
77   \r
78   engine_name: () ->\r
79     @table_name()\r
80   \r
81   form_name: () ->\r
82     @engine_name() + '/speeches'\r
83 \r
84 class Pettanr.CircleSpeechBalloon.SpeechBalloonModule\r
85   supply_default: (templates) ->\r
86     @templates = templates\r
87   \r
88   speech_balloon_extend: () ->\r
89     @new_speech_balloon() if not @sbex\r
90     @sbex\r
91   \r
92   speech_balloon_extend_setter: (params) ->\r
93     # load attributes\r
94     @sbex = new Pettanr.CircleSpeechBalloon.SpeechBalloon(params)\r
95     # no supply default params\r
96   \r
97   new_speech_balloon: (params = {}) -> \r
98     @sbex = new Pettanr.CircleSpeechBalloon.SpeechBalloon(params)\r
99     @sbex.supply_default()\r
100   \r
101 class Pettanr.CircleSpeechBalloon.BalloonModule\r
102   supply_default: (templates) ->\r
103     @templates = templates\r
104     @set({\r
105       x: 0,\r
106       y: 0,\r
107       width: @parsed_settings()['speech_balloon']['default_width'],\r
108       eight: @parsed_settings()['speech_balloon']['default_height'],\r
109       r: @parsed_settings()['speech_balloon']['default_r']\r
110     })\r
111     @select_system_picture()\r
112   \r
113   hoge_templates: () ->\r
114     if !@templates.speech_balloon_template\r
115       empty_item = new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')})\r
116       item = Pettanr.cache.restore(empty_item)\r
117       if item\r
118         # got cached item\r
119         @templates.speech_balloon_template = item\r
120       else\r
121         # built empty item\r
122         item = empty_item\r
123         item.fetch().done =>\r
124           Pettanr.cache.store(item)\r
125         @templates.speech_balloon_template = item\r
126   \r
127   balloon_extend: () ->\r
128     @new_balloon() if not @bex\r
129     @bex\r
130   \r
131   balloon_extend_setter: (params) ->\r
132     # load attributes\r
133     @bex = new Pettanr.CircleSpeechBalloon.Balloon(params)\r
134     # no supply default params\r
135   \r
136   new_balloon: (params = {}) -> \r
137     @bex = new Pettanr.CircleSpeechBalloon.Balloon(params)\r
138     @bex.supply_default()\r
139   \r
140   parsed_settings: () ->\r
141     return @parsed if @parsed\r
142     @parsed = @templates.speech_balloon_template.parsed_settings()\r
143   \r
144   select_system_picture: () ->\r
145     idx = @r_to_index(@round_r(@get('r')))\r
146     sid = @parsed_settings()[Pettanr.to_s(idx)]['balloon']['system_picture_id']\r
147     @set({system_picture_id: sid}, {silent: true})\r
148     sid\r
149   \r
150   r_step: () ->\r
151     @parsed_settings()['speech_balloon']['r_step']\r
152   \r
153   # round 0 ~ 359\r
154   round_r: (r) ->\r
155     tr = r % 360\r
156     tr = 360 + tr if tr < 0\r
157     tr\r
158   \r
159   r_to_index: (round_r) ->\r
160     # 0 ~ 45 -> 22.5 ~ 66.5\r
161     offset = @r_step() / 2.0\r
162     # rounded index\r
163     Math.floor(((round_r + offset) % 360) / @r_step())\r
164   \r
165 class Pettanr.CircleSpeechBalloon.SpeechModule\r
166   supply_default: (templates) ->\r
167     @templates = templates\r
168     s = @parsed_settings()['0']['speech']\r
169     @set({\r
170       x: s['x_rate'],\r
171       y: s['y_rate'],\r
172       width: s['width_rate'],\r
173       height: s['height_rate'],\r
174       quotes: '',\r
175       font_size: @parsed_settings()['speech_balloon']['default_font_size'],\r
176       text_align: @parsed_settings()['speech_balloon']['default_text_align'],\r
177       fore_color: @parsed_settings()['speech_balloon']['default_fore_color'],\r
178     })\r
179   \r
180   speech_extend: () ->\r
181     @sex\r
182   \r
183   speech_extend_setter: (params) ->\r
184     # load attributes\r
185     @sex = new Pettanr.CircleSpeechBalloon.Speech(params)\r
186     # no supply default params\r
187   \r
188   new_speech: (params = {}) -> \r
189     @sex = new Pettanr.CircleSpeechBalloon.Speech(params)\r
190     @sex.supply_default()\r
191   \r
192   parsed_settings: () ->\r
193     return @parsed if @parsed\r
194     @parsed = @templates.speech_balloon_template.parsed_settings()\r
195   \r
196   arrayed_quotes: () ->\r
197     q = if Pettanr.is_blank(@get('quotes'))\r
198       Pettanr.to_s(@parsed_settings()['speech_balloon']['quotes'])\r
199     else\r
200       @get('quotes')\r
201     q.split(' ')\r
202   \r