package com.uwsoft.editor.view.stage.tools; import com.badlogic.ashley.core.Entity; import com.uwsoft.editor.utils.runtime.EntityUtils; /** * Created by CyberJoe on 6/24/2015. */ public abstract class ItemDropTool extends SelectionTool { public ItemDropTool() { } @Override public boolean stageMouseDown(float x, float y) { Entity entity = putItem(x, y); return false; } @Override public void stageMouseUp(float x, float y) { } @Override public boolean itemMouseDown(Entity entity, float x, float y) { if(checkFilter(entity)) { return super.itemMouseDown(entity, x, y); } else { stageMouseDown(x, y); } return false; } @Override public void itemMouseDragged(Entity entity, float x, float y) { if(checkFilter(entity)) { super.itemMouseDragged(entity, x, y); } } @Override public void itemMouseUp(Entity entity, float x, float y) { if(checkFilter(entity)) { super.itemMouseUp(entity, x, y); } } protected boolean checkFilter(Entity entity) { int[] itemTypes = listItemFilters(); for(int i = 0; i < itemTypes.length; i++) { if(itemTypes[i] == EntityUtils.getType(entity)) { return true; } } return false; } public abstract Entity putItem(float x, float y); public abstract int[] listItemFilters(); }