diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index c48693fa3..b4bf88e3c 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -2748,6 +2748,7 @@ {"name":"s_strand_tool_stretch","order":65,"path":"sprites/s_strand_tool_stretch/s_strand_tool_stretch.yy",}, {"name":"s_strandSim","order":194,"path":"sprites/s_strandSim/s_strandSim.yy",}, {"name":"s_tab_exit","order":195,"path":"sprites/s_tab_exit/s_tab_exit.yy",}, + {"name":"s_tag","order":234,"path":"sprites/s_tag/s_tag.yy",}, {"name":"s_text_box_header","order":22,"path":"sprites/s_text_box_header/s_text_box_header.yy",}, {"name":"s_text_bullet","order":196,"path":"sprites/s_text_bullet/s_text_bullet.yy",}, {"name":"s_text_popup","order":197,"path":"sprites/s_text_popup/s_text_popup.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index b73827041..daf8e80ef 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -3510,6 +3510,7 @@ {"id":{"name":"s_strand_tool_stretch","path":"sprites/s_strand_tool_stretch/s_strand_tool_stretch.yy",},}, {"id":{"name":"s_strandSim","path":"sprites/s_strandSim/s_strandSim.yy",},}, {"id":{"name":"s_tab_exit","path":"sprites/s_tab_exit/s_tab_exit.yy",},}, + {"id":{"name":"s_tag","path":"sprites/s_tag/s_tag.yy",},}, {"id":{"name":"s_text_box_header","path":"sprites/s_text_box_header/s_text_box_header.yy",},}, {"id":{"name":"s_text_bullet","path":"sprites/s_text_bullet/s_text_bullet.yy",},}, {"id":{"name":"s_text_popup","path":"sprites/s_text_popup/s_text_popup.yy",},}, diff --git a/datafiles/data/Theme.zip b/datafiles/data/Theme.zip index 4772abf94..d117b8117 100644 Binary files a/datafiles/data/Theme.zip and b/datafiles/data/Theme.zip differ diff --git a/scripts/buttonGroup/buttonGroup.gml b/scripts/buttonGroup/buttonGroup.gml index 3f2eb4a68..704119cff 100644 --- a/scripts/buttonGroup/buttonGroup.gml +++ b/scripts/buttonGroup/buttonGroup.gml @@ -136,6 +136,8 @@ function buttonGroup(_data, _onClick) : widget() constructor { } } } else { + sb_small.data = data; + sb_small.data_list = data; sb_small.setFocusHover(active, hover); sb_small.draw(_x, _y, _w, _h, _selecting, _m, _rx, _ry); } @@ -148,8 +150,8 @@ function buttonGroup(_data, _onClick) : widget() constructor { return h; } - static clone = function() { #region + static clone = function() { var cln = new buttonGroup(data, onClick); return cln; - } #endregion + } } \ No newline at end of file diff --git a/scripts/node_PCX_equation/node_PCX_equation.gml b/scripts/node_PCX_equation/node_PCX_equation.gml index 9ca182642..4e53be4d7 100644 --- a/scripts/node_PCX_equation/node_PCX_equation.gml +++ b/scripts/node_PCX_equation/node_PCX_equation.gml @@ -133,5 +133,5 @@ function Node_PCX_Equation(_x, _y, _group = noone) : Node_PCX(_x, _y, _group) co draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0); } - static doApplyDeserialize = function() { refreshDynamicInput(); } + static postApplyDeserialize = function() { refreshDynamicInput(); } } \ No newline at end of file diff --git a/scripts/node_armature_bind/node_armature_bind.gml b/scripts/node_armature_bind/node_armature_bind.gml index 18cf1d70e..10a60b874 100644 --- a/scripts/node_armature_bind/node_armature_bind.gml +++ b/scripts/node_armature_bind/node_armature_bind.gml @@ -969,7 +969,7 @@ function Node_Armature_Bind(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr boneIDMap = struct_try_get(attr, "boneIDMap", boneIDMap); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { setBone(); } } diff --git a/scripts/node_armature_pose/node_armature_pose.gml b/scripts/node_armature_pose/node_armature_pose.gml index 82d3887c5..52c34a3db 100644 --- a/scripts/node_armature_pose/node_armature_pose.gml +++ b/scripts/node_armature_pose/node_armature_pose.gml @@ -293,7 +293,7 @@ function Node_Armature_Pose(_x, _y, _group = noone) : Node(_x, _y, _group) const return BBOX().fromPoints(minx, miny, maxx, maxy); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { for( var i = input_fix_len; i < array_length(inputs); i += data_length ) { var inp = inputs[i]; var idx = struct_try_get(inp.display_data, "bone_id"); diff --git a/scripts/node_ase_layer/node_ase_layer.gml b/scripts/node_ase_layer/node_ase_layer.gml index 39a1ed0f4..e86ec5bb4 100644 --- a/scripts/node_ase_layer/node_ase_layer.gml +++ b/scripts/node_ase_layer/node_ase_layer.gml @@ -16,12 +16,56 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct newOutput(1, nodeValue_Output("Layer name", self, VALUE_TYPE.text, "")); + layer_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { + if(ase_data == noone) { + draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, 28, COLORS.node_composite_bg_blend, 1); + + draw_set_text(f_p3, fa_center, fa_center, COLORS._main_text_sub); + draw_text_add(_x + _w / 2, _y + 14, "No data"); + return 32; + } + + var _amo = array_length(ase_data.layers); + var hh = 24; + var _h = hh * _amo + 16; + + draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1); + for( var i = 0, n = array_length(ase_data.layers); i < n; i++ ) { + var _bx = _x + 24; + var _yy = _y + 8 + i * hh; + var _layer = ase_data.layers[i]; + + if(_layer.type == 0) { + draw_sprite_ui_uniform(THEME.icon_canvas, 0, _bx, _yy + hh / 2, 1, COLORS._main_icon); + + } else if(_layer.type == 1) + draw_sprite_ui_uniform(THEME.folder_16, 0, _bx, _yy + hh / 2, 1, COLORS._main_icon); + + var cc = COLORS._main_text_sub; + + if(_hover && point_in_rectangle(_m[0], _m[1], _x, _yy, _x + _w, _yy + hh - 1)) { + cc = COLORS._main_text; + + if(mouse_press(mb_left, _focus)) + inputs[2].setValue(_layer.name); + } + + if(_layer == layer_object) + cc = COLORS._main_text_accent; + + draw_set_text(f_p2, fa_left, fa_center, cc); + draw_text_add(_bx + 16, _yy + hh / 2, _layer.name); + } + + return _h; + }); + input_display_list = [ - 0, 2, 1, + 0, layer_renderer, 2, 1, ]; + ase_data = noone; layer_object = noone; - _name = ""; static onValueFromUpdate = function(index) { findLayer(); } @@ -29,6 +73,7 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct layer_object = noone; var data = getInputDataForce(0); + ase_data = data; if(data == noone) return; var _lname = getInputData(2); @@ -46,6 +91,8 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct var data = getInputData(0); var celDim = getInputData(1); var _lname = getInputData(2); + + ase_data = data; outputs[1].setValue(_lname); if(layer_object == noone) { @@ -64,8 +111,6 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct else surf = surface_verify(surf, ww, hh); outputs[0].setValue(surf); - print($"Setting layer name {_lname}"); - if(cel == 0) { surface_clear(surf); return; } var _inSurf = cel.getSurface(); @@ -76,4 +121,9 @@ function Node_ASE_layer(_x, _y, _group = noone) : Node(_x, _y, _group) construct draw_surface_safe(_inSurf, xx, yy); surface_reset_shader(); } + + static postApplyDeserialize = function() { + if(LOADING_VERSION < 1_18_00_0 && display_name != "") + inputs[2].setValue(display_name); + } } \ No newline at end of file diff --git a/scripts/node_ase_tag/node_ase_tag.gml b/scripts/node_ase_tag/node_ase_tag.gml index c54ef83ca..9f40979c6 100644 --- a/scripts/node_ase_tag/node_ase_tag.gml +++ b/scripts/node_ase_tag/node_ase_tag.gml @@ -1,5 +1,6 @@ function Node_ASE_Tag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "ASE Tag"; + ase_data = noone; newInput(0, nodeValue("ASE data", self, CONNECT_TYPE.input, VALUE_TYPE.object, noone)) .setIcon(s_junc_aseprite, c_white) @@ -10,12 +11,61 @@ function Node_ASE_Tag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); + tag_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) { + if(ase_data == noone) { + draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, 28, COLORS.node_composite_bg_blend, 1); + + draw_set_text(f_p3, fa_center, fa_center, COLORS._main_text_sub); + draw_text_add(_x + _w / 2, _y + 14, "No data"); + return 32; + } + + var _tag = getSingleValue(1); + var _amo = array_length(ase_data.tags); + var hh = 24; + var _h = hh * _amo + 16; + + draw_sprite_stretched_ext(THEME.ui_panel_bg, 1, _x, _y, _w, _h, COLORS.node_composite_bg_blend, 1); + for( var i = 0, n = array_length(ase_data.tags); i < n; i++ ) { + var _bx = _x + 24; + var _yy = _y + 8 + i * hh; + + var tag = ase_data.tags[i]; + var tName = tag[$ "Name"]; + var tColr = tag[$ "Color"]; + + draw_sprite_ui_uniform(THEME.tag, 0, _bx, _yy + hh / 2 + 2, 1, tColr); + + var cc = COLORS._main_text_sub; + + if(_hover && point_in_rectangle(_m[0], _m[1], _x, _yy, _x + _w, _yy + hh - 1)) { + cc = COLORS._main_text; + + if(mouse_press(mb_left, _focus)) + inputs[1].setValue(tName); + } + + if(tName == _tag) + cc = COLORS._main_text_accent; + + draw_set_text(f_p2, fa_left, fa_center, cc); + draw_text_add(_bx + 16, _yy + hh / 2, tName); + } + + return _h; + }); + + input_display_list = [ + 0, tag_renderer, 1, + ]; + temp_surface = [ 0, 0, 0 ]; static processData = function(_outSurf, _data, _output_index, _array_index) { var _ase = _data[0]; var _tag = _data[1]; + ase_data = _ase; if(_ase == noone || _ase.content == noone) return; var _cnt = _ase.content; diff --git a/scripts/node_canvas/node_canvas.gml b/scripts/node_canvas/node_canvas.gml index 03545af79..19c90bd9c 100644 --- a/scripts/node_canvas/node_canvas.gml +++ b/scripts/node_canvas/node_canvas.gml @@ -1152,7 +1152,7 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor _map.surfaces = _buff; } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { var _dim = struct_has(attributes, "dimension")? attributes.dimension : getInputData(0); if(!struct_has(load_map, "surfaces")) { diff --git a/scripts/node_color_hsv/node_color_hsv.gml b/scripts/node_color_hsv/node_color_hsv.gml index 7b9f4773b..f2a01e75d 100644 --- a/scripts/node_color_hsv/node_color_hsv.gml +++ b/scripts/node_color_hsv/node_color_hsv.gml @@ -80,7 +80,7 @@ function Node_Color_HSV(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) drawColor(col, bbox.x0, bbox.y0, bbox.w, bbox.h); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { onValueUpdate(3); } } \ No newline at end of file diff --git a/scripts/node_color_rgb/node_color_rgb.gml b/scripts/node_color_rgb/node_color_rgb.gml index 6c713df8c..b43f8b16d 100644 --- a/scripts/node_color_rgb/node_color_rgb.gml +++ b/scripts/node_color_rgb/node_color_rgb.gml @@ -84,7 +84,7 @@ function Node_Color_RGB(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) drawColor(col, bbox.x0, bbox.y0, bbox.w, bbox.h); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { onValueUpdate(3); } } \ No newline at end of file diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index b9efab126..7134e5a07 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -2531,11 +2531,11 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { //print($"Applying deserialzie for {name} complete"); - doApplyDeserialize(); + postApplyDeserialize(); } static preApplyDeserialize = function() {} - static doApplyDeserialize = function() {} + static postApplyDeserialize = function() {} static loadGroup = function(context = noone) { if(load_group == noone) { diff --git a/scripts/node_dynasurf_in/node_dynasurf_in.gml b/scripts/node_dynasurf_in/node_dynasurf_in.gml index a25e74e27..08f03bf9f 100644 --- a/scripts/node_dynasurf_in/node_dynasurf_in.gml +++ b/scripts/node_dynasurf_in/node_dynasurf_in.gml @@ -50,7 +50,7 @@ function Node_DynaSurf_In(_x, _y, _group = noone) : Node(_x, _y, _group) constru createInput(false); } #endregion - static doApplyDeserialize = function() { #region + static postApplyDeserialize = function() { #region if(group == noone) return; group.sortIO(); } #endregion diff --git a/scripts/node_equation/node_equation.gml b/scripts/node_equation/node_equation.gml index d0a25d310..d2bf74a92 100644 --- a/scripts/node_equation/node_equation.gml +++ b/scripts/node_equation/node_equation.gml @@ -186,5 +186,5 @@ function Node_Equation(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) draw_text_transformed(bbox.xc, bbox.yc, str, ss, ss, 0); } - static doApplyDeserialize = function() { refreshDynamicInput(); } + static postApplyDeserialize = function() { refreshDynamicInput(); } } \ No newline at end of file diff --git a/scripts/node_export/node_export.gml b/scripts/node_export/node_export.gml index b58ab2a8d..b79fdc60e 100644 --- a/scripts/node_export/node_export.gml +++ b/scripts/node_export/node_export.gml @@ -883,5 +883,5 @@ function Node_Export(_x, _y, _group = noone) : Node(_x, _y, _group) constructor } } - static doApplyDeserialize = function() { onValueUpdate(3); } + static postApplyDeserialize = function() { onValueUpdate(3); } } \ No newline at end of file diff --git a/scripts/node_group_input/node_group_input.gml b/scripts/node_group_input/node_group_input.gml index d86e01ad6..abe47248d 100644 --- a/scripts/node_group_input/node_group_input.gml +++ b/scripts/node_group_input/node_group_input.gml @@ -471,7 +471,7 @@ function Node_Group_Input(_x, _y, _group = noone) : Node(_x, _y, _group) constru static postDeserialize = function() { createInput(false); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { if(inParent == undefined) return; if(group == noone) return; diff --git a/scripts/node_group_output/node_group_output.gml b/scripts/node_group_output/node_group_output.gml index a1740558c..f39ff81c6 100644 --- a/scripts/node_group_output/node_group_output.gml +++ b/scripts/node_group_output/node_group_output.gml @@ -101,7 +101,7 @@ function Node_Group_Output(_x, _y, _group = noone) : Node(_x, _y, _group) constr static getGraphPreviewSurface = function() { return inputs[0].getValue(); } static postDeserialize = function() { if(group == noone) return; createOutput(false); } - static doApplyDeserialize = function() {} + static postApplyDeserialize = function() {} static onDestroy = function() { if(is_undefined(outParent)) return; diff --git a/scripts/node_lua_compute/node_lua_compute.gml b/scripts/node_lua_compute/node_lua_compute.gml index c4fcd28b5..a4a9154f8 100644 --- a/scripts/node_lua_compute/node_lua_compute.gml +++ b/scripts/node_lua_compute/node_lua_compute.gml @@ -171,7 +171,7 @@ function Node_Lua_Compute(_x, _y, _group = noone) : Node(_x, _y, _group) constru lua_add_code(getState(), lua_code); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { refreshDynamicInput(); for( var i = input_fix_len; i < array_length(inputs) - data_length; i += data_length ) { diff --git a/scripts/node_lua_surface/node_lua_surface.gml b/scripts/node_lua_surface/node_lua_surface.gml index 9bd47c39a..bc3547bbd 100644 --- a/scripts/node_lua_surface/node_lua_surface.gml +++ b/scripts/node_lua_surface/node_lua_surface.gml @@ -172,7 +172,7 @@ function Node_Lua_Surface(_x, _y, _group = noone) : Node(_x, _y, _group) constru lua_add_code(getState(), lua_code); } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { refreshDynamicInput(); for( var i = input_fix_len; i < array_length(inputs) - data_length; i += data_length ) { diff --git a/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml b/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml index bfed26056..f01f548b1 100644 --- a/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml +++ b/scripts/node_render_sprite_sheet/node_render_sprite_sheet.gml @@ -65,7 +65,7 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) static onInspector1Update = function(updateAll = true) { initSurface(true); PROJECT.animator.render(); } - static step = function() { #region + static step = function() { var inpt = getInputData(0); var grup = getInputData(1); var pack = getInputData(3); @@ -91,27 +91,27 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) } update_on_frame = grup == 0; - } #endregion + } - static update = function(frame = CURRENT_FRAME) { #region + static update = function(frame = CURRENT_FRAME) { if(IS_FIRST_FRAME) initSurface(); var grup = getInputData(1); if(grup == SPRITE_ANIM_GROUP.animation) animationRender(); else arrayRender(); - } #endregion + } - static initSurface = function(clear = false) { #region + static initSurface = function(clear = false) { for(var i = 0; i < TOTAL_FRAMES; i++) anim_drawn[i] = false; var grup = getInputData(1); if(grup == SPRITE_ANIM_GROUP.animation) animationInit(clear); else arrayRender(); - } #endregion + } - static arrayRender = function() { #region + static arrayRender = function() { var inpt = getInputData(0); var grup = getInputData(1); var pack = getInputData(3); @@ -310,12 +310,12 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) outputs[0].setValue(_surf); outputs[1].setValue(array_spread(atlases)); - } #endregion + } anim_curr_w = -1; anim_curr_h = -1; - static animationInit = function(clear = false) { #region + static animationInit = function(clear = false) { var inpt = getInputData(0); var skip = getInputData(2); var pack = getInputData(3); @@ -401,9 +401,9 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) outputs[1].setValue(array_spread(atlases)); printIf(log, $"Surface generated [{ww}, {hh}]"); - } #endregion + } - static animationRender = function() { #region + static animationRender = function() { var inpt = getInputData(0); var skip = getInputData(2); var pack = getInputData(3); @@ -461,7 +461,7 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) var px = padd[2]; var py = padd[1]; - for(var i = 0; i < array_length(inpt); i++) { #region + for(var i = 0; i < array_length(inpt); i++) { var _surfi = inpt[i]; if(!is_surface(_surfi)) { @@ -541,9 +541,9 @@ function Node_Render_Sprite_Sheet(_x, _y, _group = noone) : Node(_x, _y, _group) surface_reset_shader(); drawn = true; - } #endregion + } if(drawn) array_safe_set(anim_drawn, CURRENT_FRAME, true); outputs[1].setValue(array_spread(atlases)); - } #endregion + } } \ No newline at end of file diff --git a/scripts/node_struct/node_struct.gml b/scripts/node_struct/node_struct.gml index 6342ead90..258c7c5a9 100644 --- a/scripts/node_struct/node_struct.gml +++ b/scripts/node_struct/node_struct.gml @@ -155,7 +155,7 @@ function Node_Struct(_x, _y, _group = noone) : Node(_x, _y, _group) constructor } } - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { refreshDynamicInput(); } } \ No newline at end of file diff --git a/scripts/node_switch/node_switch.gml b/scripts/node_switch/node_switch.gml index 0501fc6f7..cbbc80222 100644 --- a/scripts/node_switch/node_switch.gml +++ b/scripts/node_switch/node_switch.gml @@ -206,5 +206,5 @@ function Node_Switch(_x, _y, _group = noone) : Node(_x, _y, _group) constructor } } #endregion - static doApplyDeserialize = function() { refreshDynamicInput(); } + static postApplyDeserialize = function() { refreshDynamicInput(); } } \ No newline at end of file diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 0ff26af73..01bdd373d 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -2233,12 +2233,12 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru node.input_value_map[$ internalName] = _value; } - doApplyDeserialize(); + postApplyDeserialize(); attributeApply(); onValidate(); } - static doApplyDeserialize = function() {} + static postApplyDeserialize = function() {} static attributeApply = function() { if(struct_has(attributes, "mapped") && attributes.mapped) diff --git a/scripts/node_value_enum_scroll/node_value_enum_scroll.gml b/scripts/node_value_enum_scroll/node_value_enum_scroll.gml index 8880d7aae..2befe8e63 100644 --- a/scripts/node_value_enum_scroll/node_value_enum_scroll.gml +++ b/scripts/node_value_enum_scroll/node_value_enum_scroll.gml @@ -23,7 +23,7 @@ function __NodeValue_Enum_Scroll(_name, _node, _value, _data) : NodeValue(_name, options_histories = []; - static doApplyDeserialize = function() { + static postApplyDeserialize = function() { if(is_anim) return; if(CLONING) return; if(array_empty(options_histories)) return; diff --git a/scripts/node_websocket_sender/node_websocket_sender.gml b/scripts/node_websocket_sender/node_websocket_sender.gml index b41c711fe..e28f5cfa5 100644 --- a/scripts/node_websocket_sender/node_websocket_sender.gml +++ b/scripts/node_websocket_sender/node_websocket_sender.gml @@ -155,7 +155,7 @@ function Node_Websocket_Sender(_x, _y, _group = noone) : Node(_x, _y, _group) co draw_sprite_fit(THEME.node_websocket_send, 0, bbox.xc, (_y0 + _y1) / 2, bbox.w, _y1 - _y0, cc, aa); } #endregion - static doApplyDeserialize = function() { #region + static postApplyDeserialize = function() { #region if(struct_has(attributes, "network_timeout")) network_set_config(network_config_connect_timeout, attributes.network_timeout); } #endregion } \ No newline at end of file diff --git a/scripts/theme_definition/theme_definition.gml b/scripts/theme_definition/theme_definition.gml index 8ad2b24bc..453fd6734 100644 --- a/scripts/theme_definition/theme_definition.gml +++ b/scripts/theme_definition/theme_definition.gml @@ -169,6 +169,7 @@ function Theme() constructor { steam = s_steam; strandSim = s_strandSim; tab_exit = s_tab_exit; + tag = s_tag; text_bullet = s_text_bullet; text_popup = s_text_popup; text = s_name; diff --git a/sprites/s_tag/2fc5f6b8-8488-4040-9c59-0fe0bde34344.png b/sprites/s_tag/2fc5f6b8-8488-4040-9c59-0fe0bde34344.png new file mode 100644 index 000000000..dbacd5fb8 Binary files /dev/null and b/sprites/s_tag/2fc5f6b8-8488-4040-9c59-0fe0bde34344.png differ diff --git a/sprites/s_tag/layers/2fc5f6b8-8488-4040-9c59-0fe0bde34344/ada88684-76ca-4036-9eba-ee32acfcb2c0.png b/sprites/s_tag/layers/2fc5f6b8-8488-4040-9c59-0fe0bde34344/ada88684-76ca-4036-9eba-ee32acfcb2c0.png new file mode 100644 index 000000000..dbacd5fb8 Binary files /dev/null and b/sprites/s_tag/layers/2fc5f6b8-8488-4040-9c59-0fe0bde34344/ada88684-76ca-4036-9eba-ee32acfcb2c0.png differ diff --git a/sprites/s_tag/s_tag.yy b/sprites/s_tag/s_tag.yy new file mode 100644 index 000000000..198b3c75b --- /dev/null +++ b/sprites/s_tag/s_tag.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"s_tag", + "bboxMode":0, + "bbox_bottom":12, + "bbox_left":1, + "bbox_right":14, + "bbox_top":3, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"2fc5f6b8-8488-4040-9c59-0fe0bde34344","name":"2fc5f6b8-8488-4040-9c59-0fe0bde34344","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":16, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"ada88684-76ca-4036-9eba-ee32acfcb2c0","blendMode":0,"displayName":"default","isLocked":false,"name":"ada88684-76ca-4036-9eba-ee32acfcb2c0","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_tag", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"icon", + "path":"folders/theme/icon.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_tag", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_tag", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"2fc5f6b8-8488-4040-9c59-0fe0bde34344","path":"sprites/s_tag/s_tag.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"94c990b2-95a8-4f14-903d-57b947fb874e","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":8, + "yorigin":8, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":16, +} \ No newline at end of file