/** * 创建一个新的格子对象数据 * * <p>addOrUpdate 0表示添加 1表示是新增进来的 openNewGrid:(). <br> * TODO().<br> * * @author yxd * @return */ public Item openNewGrid( Item temporaryItem1, int count, long roleId, EntityDAO dao, int addOrUpdate) { ItemData itemTemporaryData = new ItemData(); // 根据模板编号创建新道具 Item item = null; int itemDateCellIndex = -1; if (isHasNullCell() == -1) { itemDateCellIndex = index; } else { itemDateCellIndex = isHasNullCell(); } long id = 0; if (temporaryItem1 instanceof EquitItem) { // 如果是装备 EquitItem equitItem = (EquitItem) temporaryItem1; if (addOrUpdate == 0) { // 普通添加 item = temporaryItem1; id = temporaryItem1.getId(); } else if (addOrUpdate == 1) { // 超过格子添加 item = ItemManage.createItem(equitItem.getProperty().getId()); id = item.getId(); } itemTemporaryData.setId(id); itemTemporaryData.setConfigId(equitItem.getProperty().getId()); itemTemporaryData.setItemType(equitItem.getProperty().getBagClass()); itemTemporaryData.setNumber(count); itemTemporaryData.setQuality(equitItem.getProperty().getQuality()); itemTemporaryData.setIndexInBag(itemDateCellIndex); itemTemporaryData.setRoleId(roleId); // 设置装备的固有属性 itemTemporaryData.setPos(-1); // 装备绑定位 itemTemporaryData.setScore(equitItem.getScore()); // 初始化分数 itemTemporaryData.setSocket(equitItem.getBornSocket()); // 初始化孔 item.setItemData(itemTemporaryData); cells.get(itemDateCellIndex).setItem(item); if (isHasNullCell() == -1) { index++; } dao.saveOrUpdate(item.getItemData()); } else if (temporaryItem1 instanceof CommonToolItem) { // 如果是普通道具 CommonToolItem temporaryItem = (CommonToolItem) temporaryItem1; if (addOrUpdate == 0) { // 普通添加 item = temporaryItem1; id = temporaryItem1.getId(); } else if (addOrUpdate == 1) { // 超过格子添加 item = ItemManage.createItem(temporaryItem.getProperty().getId()); id = item.getId(); } itemTemporaryData.setId(id); itemTemporaryData.setConfigId(temporaryItem.getProperty().getId()); itemTemporaryData.setItemType(temporaryItem.getProperty().getBagClass()); itemTemporaryData.setNumber(count); itemTemporaryData.setQuality(temporaryItem.getProperty().getQuality()); itemTemporaryData.setIndexInBag(itemDateCellIndex); itemTemporaryData.setRoleId(roleId); item.setItemData(itemTemporaryData); cells.get(itemDateCellIndex).setItem(item); if (isHasNullCell() == -1) { index++; } dao.saveOrUpdate(item.getItemData()); } return item; }