|
@@ -1,8 +1,11 @@
|
|
-import { _decorator, Component, instantiate, Node, Prefab } from 'cc';
|
|
|
|
-import { dai_dao_ju_item, guo_ju_qing_dai_dao_ju } from '../../../data/data';
|
|
|
|
|
|
+import { _decorator, Component, instantiate, Node, Prefab, Rect, Size, Sprite, UITransform, Vec2, Vec3 } from 'cc';
|
|
|
|
+import { dai_dao_ju_item, event_item, guo_ju_qing_dai_dao_ju } from '../../../data/data';
|
|
import { widget_base } from '../widget/widget_base';
|
|
import { widget_base } from '../widget/widget_base';
|
|
import { gameManager } from '../gameManager';
|
|
import { gameManager } from '../gameManager';
|
|
import { bag_drag_item } from './bag_drag_item';
|
|
import { bag_drag_item } from './bag_drag_item';
|
|
|
|
+import { ClientEvent } from '../../clientEvent';
|
|
|
|
+import { config } from '../../config';
|
|
|
|
+import { widget_info } from './widget_info';
|
|
const { ccclass, property } = _decorator;
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass('dai_dao_ju_bag')
|
|
@ccclass('dai_dao_ju_bag')
|
|
@@ -12,12 +15,22 @@ export class dai_dao_ju_bag extends Component {
|
|
@property(Node) content:Node;
|
|
@property(Node) content:Node;
|
|
@property(Node) btn_info:Node;
|
|
@property(Node) btn_info:Node;
|
|
@property(Prefab) item_prefab:Prefab = null;
|
|
@property(Prefab) item_prefab:Prefab = null;
|
|
- private m_call_back = null;
|
|
|
|
|
|
+ @property(Node) action_node:Node = null;
|
|
|
|
+ @property(widget_info) widget_info:widget_info = null;
|
|
|
|
+ @property(Node) drag_des:Node = null;
|
|
|
|
+ private m_tip_call_back = null;
|
|
private m_add_time_call = null;
|
|
private m_add_time_call = null;
|
|
private cur_select_item:bag_drag_item = null;
|
|
private cur_select_item:bag_drag_item = null;
|
|
- public initView(data:guo_ju_qing_dai_dao_ju,call_back,add_time_call){
|
|
|
|
|
|
+ private mWidgetList:Map<number,bag_drag_item> = new Map;
|
|
|
|
+ private mData:guo_ju_qing_dai_dao_ju = null;
|
|
|
|
+ public initView(data:guo_ju_qing_dai_dao_ju,tip_call,add_time_call){
|
|
this.content.removeAllChildren()
|
|
this.content.removeAllChildren()
|
|
- this.m_call_back = call_back;
|
|
|
|
|
|
+ this.mWidgetList.clear()
|
|
|
|
+ this.mData = data;
|
|
|
|
+ this.btn_info.active = false;
|
|
|
|
+ ClientEvent.off(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
|
|
|
|
+ ClientEvent.on(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
|
|
|
|
+ this.m_tip_call_back = tip_call;
|
|
this.m_add_time_call = add_time_call;
|
|
this.m_add_time_call = add_time_call;
|
|
let list = gameManager.getWidgetList(gameManager.Singleton.getSceneManager().getSceneData());
|
|
let list = gameManager.getWidgetList(gameManager.Singleton.getSceneManager().getSceneData());
|
|
let getWidgetData = (id)=>{
|
|
let getWidgetData = (id)=>{
|
|
@@ -39,14 +52,15 @@ export class dai_dao_ju_bag extends Component {
|
|
}else{
|
|
}else{
|
|
item.active = false;
|
|
item.active = false;
|
|
}
|
|
}
|
|
- item.getComponent(bag_drag_item).initView(element,getWidgetData(element.widget_id),this.onItemClick.bind(this))
|
|
|
|
|
|
+ item.getComponent(bag_drag_item).initView(element,getWidgetData(element.widget_id),this.onItemClick.bind(this),this.onItemFinish.bind(this))
|
|
|
|
+ this.mWidgetList.set(element.widget_id,item.getComponent(bag_drag_item))
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
this.btn_tip.on(Node.EventType.TOUCH_END,()=>{
|
|
this.btn_tip.on(Node.EventType.TOUCH_END,()=>{
|
|
- if( this.m_call_back !=null){
|
|
|
|
- this.m_call_back();
|
|
|
|
|
|
+ if( this.m_tip_call_back !=null){
|
|
|
|
+ this.m_tip_call_back();
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
@@ -61,11 +75,65 @@ export class dai_dao_ju_bag extends Component {
|
|
this.m_add_time_call();
|
|
this.m_add_time_call();
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+
|
|
|
|
+ this.btn_info.on(Node.EventType.TOUCH_END,()=>{
|
|
|
|
+ if( this.cur_select_item !=null){
|
|
|
|
+ this.widget_info.show(this.cur_select_item.getData().info_res)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ hideAllItem(){
|
|
|
|
+ for (let index = 0; index < this.content.children.length; index++) {
|
|
|
|
+ const element = this.content.children[index];
|
|
|
|
+ element.getComponent(bag_drag_item).unSelect()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
onItemClick(item:bag_drag_item){
|
|
onItemClick(item:bag_drag_item){
|
|
|
|
+ if(this.cur_select_item==item){
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.hideAllItem()
|
|
this.cur_select_item = item;
|
|
this.cur_select_item = item;
|
|
|
|
+ this.cur_select_item.onSelect()
|
|
|
|
+ this.btn_info.active = true;
|
|
|
|
+ this.addDragRect(this.cur_select_item.getRect())
|
|
|
|
+ this.cur_select_item.registeredEvent(this.action_node)
|
|
|
|
+ this.action_node.on(Node.EventType.TOUCH_START,()=>{
|
|
|
|
+ this.action_node.off(Node.EventType.TOUCH_START)
|
|
|
|
+ this.btn_info.active = false;
|
|
|
|
+ this.cur_select_item.unSelect()
|
|
|
|
+ this.cur_select_item = null;
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ onItemFinish(item:bag_drag_item){
|
|
|
|
+ item.node.removeFromParent()
|
|
|
|
+ this.cur_select_item = null;
|
|
|
|
+ if(this.isFinishAll()){
|
|
|
|
+ if( this.mData.finish_event_id!=-1){
|
|
|
|
+ gameManager.Singleton.exeEvent(this.mData.finish_event_id)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ isFinishAll(){
|
|
|
|
+ return this.content.children.length<=0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ beActive(widgetId:number,event:event_item){
|
|
|
|
+ if(event.type===config.event_type.active_event){
|
|
|
|
+ let drag_item = this.mWidgetList.get(widgetId)
|
|
|
|
+ if(drag_item!=null){
|
|
|
|
+ drag_item.node.active = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ addDragRect(r:Rect){
|
|
|
|
+ this.drag_des.position = new Vec3(r.x+r.width*0.5,r.y+r.height*0.5);
|
|
|
|
+ this.drag_des.getComponent(UITransform).setContentSize(new Size(r.width,r.height))
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|