Compare commits
	
		
			2 Commits
		
	
	
		
			e6d946db53
			...
			e6a30cb09b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e6a30cb09b | ||
| 
						 | 
					1e13c55f1f | 
@ -779,6 +779,7 @@ Fix equipped item packet not being sent to creature's player
 | 
			
		||||
Component-ify natural and equip inventory menus
 | 
			
		||||
Post Processing Pipeline w/ blur
 | 
			
		||||
Blur on open inventory/main menu in game
 | 
			
		||||
Remove legacy UI handling of positioning -- entirely reliant on yoga now
 | 
			
		||||
 | 
			
		||||
(09/17/2024)
 | 
			
		||||
Framebuffer position drilling
 | 
			
		||||
 | 
			
		||||
@ -101,7 +101,6 @@ import electrosphere.menu.WindowStrings;
 | 
			
		||||
import electrosphere.menu.WindowUtils;
 | 
			
		||||
import electrosphere.menu.debug.ImGuiWindowMacros;
 | 
			
		||||
import electrosphere.menu.ingame.MenuGeneratorsInGame;
 | 
			
		||||
import electrosphere.menu.ingame.MenuGeneratorsInventory;
 | 
			
		||||
import electrosphere.renderer.ui.components.PlayerInventoryWindow;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Window;
 | 
			
		||||
import electrosphere.renderer.ui.events.ClickEvent;
 | 
			
		||||
@ -136,7 +135,6 @@ public class ControlHandler {
 | 
			
		||||
    public static final String INPUT_CODE_INTERACT = "interact";
 | 
			
		||||
    public static final String INPUT_CODE_DROP = "drop";
 | 
			
		||||
    public static final String INPUT_CODE_INVENTORY_OPEN = "inventoryOpen";
 | 
			
		||||
    public static final String INPUT_CODE_CHARACTER_OPEN = "characterOpen";
 | 
			
		||||
    public static final String ITEM_SECONDARY = "actionItemSecondary";
 | 
			
		||||
    public static final String INPUT_CODE_PLACE_TERRAIN = "placeTerrain";
 | 
			
		||||
    public static final String INPUT_CODE_REMOVE_TERRAIN = "removeTerrain";
 | 
			
		||||
@ -326,7 +324,6 @@ public class ControlHandler {
 | 
			
		||||
        handler.addControl(INPUT_CODE_INTERACT, new Control(ControlType.KEY,GLFW_KEY_E,false,"Interact","Interacts with whatever is targeted currently"));
 | 
			
		||||
        handler.addControl(INPUT_CODE_DROP, new Control(ControlType.KEY,GLFW_KEY_Y,false,"Drop","Drops the currently equipped item"));
 | 
			
		||||
        handler.addControl(INPUT_CODE_INVENTORY_OPEN, new Control(ControlType.KEY,GLFW_KEY_I,false,"Inventory","Opens the player's inventory"));
 | 
			
		||||
        handler.addControl(INPUT_CODE_CHARACTER_OPEN, new Control(ControlType.KEY,GLFW_KEY_C,false,"Equip Menu","Opens the player's equipment menu"));
 | 
			
		||||
        handler.addControl(ITEM_SECONDARY, new Control(ControlType.MOUSE_BUTTON,GLFW_MOUSE_BUTTON_RIGHT,false,"Secondary","Uses the secondary equipped item"));
 | 
			
		||||
                
 | 
			
		||||
        /*
 | 
			
		||||
@ -980,14 +977,13 @@ public class ControlHandler {
 | 
			
		||||
        mainGameControlList.add(controls.get(INPUT_CODE_INVENTORY_OPEN));
 | 
			
		||||
        inventoryControlList.add(controls.get(INPUT_CODE_INVENTORY_OPEN));
 | 
			
		||||
        controls.get(INPUT_CODE_INVENTORY_OPEN).setOnClick(new ControlMethod(){public void execute(){
 | 
			
		||||
            if(InventoryUtils.hasNaturalInventory(Globals.playerEntity) && Globals.elementService.getWindow(WindowUtils.getInventoryWindowID(InventoryUtils.getNaturalInventory(Globals.playerEntity).getId())) == null){
 | 
			
		||||
            if(Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER) == null){
 | 
			
		||||
                //create window
 | 
			
		||||
                UnrelationalInventoryState inventory = InventoryUtils.getNaturalInventory(Globals.playerEntity);
 | 
			
		||||
                Window mainMenuWindow = PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity);
 | 
			
		||||
                //register
 | 
			
		||||
                Globals.elementService.registerWindow(WindowUtils.getInventoryWindowID(inventory.getId()), mainMenuWindow);
 | 
			
		||||
                Globals.elementService.registerWindow(WindowStrings.WINDOW_CHARACTER, mainMenuWindow);
 | 
			
		||||
                //make visible
 | 
			
		||||
                WindowUtils.recursiveSetVisible(Globals.elementService.getWindow(WindowUtils.getInventoryWindowID(inventory.getId())), true);
 | 
			
		||||
                WindowUtils.recursiveSetVisible(WindowStrings.WINDOW_CHARACTER, true);
 | 
			
		||||
                //controls
 | 
			
		||||
                Globals.controlHandler.hintUpdateControlState(ControlsState.INVENTORY);
 | 
			
		||||
                //play sound effect
 | 
			
		||||
@ -997,42 +993,16 @@ public class ControlHandler {
 | 
			
		||||
                Globals.renderingEngine.getPostProcessingPipeline().setApplyBlur(true);
 | 
			
		||||
                //
 | 
			
		||||
                Globals.openInventoriesCount++;
 | 
			
		||||
            } else if(InventoryUtils.hasNaturalInventory(Globals.playerEntity) && Globals.elementService.getWindow(WindowUtils.getInventoryWindowID(InventoryUtils.getNaturalInventory(Globals.playerEntity).getId())) != null){
 | 
			
		||||
                Globals.elementService.closeWindow(WindowUtils.getInventoryWindowID(InventoryUtils.getNaturalInventory(Globals.playerEntity).getId()));
 | 
			
		||||
            } else if(InventoryUtils.hasNaturalInventory(Globals.playerEntity) && Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER) != null){
 | 
			
		||||
                Globals.elementService.closeWindow(WindowStrings.WINDOW_CHARACTER);
 | 
			
		||||
                Globals.renderingEngine.getPostProcessingPipeline().setApplyBlur(false);
 | 
			
		||||
            }
 | 
			
		||||
        }});
 | 
			
		||||
        controls.get(INPUT_CODE_INVENTORY_OPEN).setRepeatTimeout(0.5f * Main.targetFrameRate);
 | 
			
		||||
 | 
			
		||||
        /*
 | 
			
		||||
        Open character
 | 
			
		||||
        */
 | 
			
		||||
        mainGameControlList.add(controls.get(INPUT_CODE_CHARACTER_OPEN));
 | 
			
		||||
        inventoryControlList.add(controls.get(INPUT_CODE_CHARACTER_OPEN));
 | 
			
		||||
        controls.get(INPUT_CODE_CHARACTER_OPEN).setOnClick(new ControlMethod(){public void execute(){
 | 
			
		||||
            if(InventoryUtils.hasEquipInventory(Globals.playerEntity) && Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER) == null){
 | 
			
		||||
                //create window
 | 
			
		||||
                Window characterInventoryMenu = MenuGeneratorsInventory.createCharacterInventoryMenu(InventoryUtils.getEquipInventory(Globals.playerEntity));
 | 
			
		||||
                //register
 | 
			
		||||
                Globals.elementService.registerWindow(WindowStrings.WINDOW_CHARACTER, characterInventoryMenu);
 | 
			
		||||
                //make visible
 | 
			
		||||
                WindowUtils.recursiveSetVisible(Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER), true);
 | 
			
		||||
                //controls
 | 
			
		||||
                Globals.controlHandler.hintUpdateControlState(ControlsState.INVENTORY);
 | 
			
		||||
                //play sound effect
 | 
			
		||||
                if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                    Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/openMenu.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                }
 | 
			
		||||
                Globals.renderingEngine.getPostProcessingPipeline().setApplyBlur(true);
 | 
			
		||||
                //
 | 
			
		||||
                Globals.openInventoriesCount++;
 | 
			
		||||
            } else if(InventoryUtils.hasEquipInventory(Globals.playerEntity) && Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER) != null){
 | 
			
		||||
                Globals.elementService.closeWindow(WindowStrings.WINDOW_CHARACTER);
 | 
			
		||||
                Globals.renderingEngine.getPostProcessingPipeline().setApplyBlur(false);
 | 
			
		||||
            }
 | 
			
		||||
        }});
 | 
			
		||||
        controls.get(INPUT_CODE_CHARACTER_OPEN).setRepeatTimeout(0.5f * Main.targetFrameRate);
 | 
			
		||||
 | 
			
		||||
        /**
 | 
			
		||||
         * Places terrain
 | 
			
		||||
         */
 | 
			
		||||
        mainGameControlList.add(controls.get(INPUT_CODE_PLACE_TERRAIN));
 | 
			
		||||
        controls.get(INPUT_CODE_PLACE_TERRAIN).setOnPress(new ControlMethod(){public void execute(){
 | 
			
		||||
            CollisionEngine collisionEngine = Globals.clientSceneWrapper.getCollisionEngine();
 | 
			
		||||
@ -1423,19 +1393,6 @@ public class ControlHandler {
 | 
			
		||||
     * Sets the inventory control callbacks
 | 
			
		||||
     */
 | 
			
		||||
    void setInventoryControls(){
 | 
			
		||||
        /*
 | 
			
		||||
        Close inventory
 | 
			
		||||
        */
 | 
			
		||||
        // inventoryControlList.add(controls.get(INPUT_CODE_INVENTORY_CLOSE));
 | 
			
		||||
        // controls.get(INPUT_CODE_INVENTORY_CLOSE).setOnPress(new ControlMethod(){public void execute(){
 | 
			
		||||
        //     // MenuCallbacks.backout(Globals.currentMenu);
 | 
			
		||||
        //     UnrelationalInventoryState  inventory = InventoryUtils.getNaturalInventory(Globals.playerCharacter);
 | 
			
		||||
        //     Element inventoryWindow = Globals.elementManager.getWindow(WindowUtils.getInventoryWindowID(inventory.getId()));
 | 
			
		||||
        //     WindowUtils.recursiveSetVisible(inventoryWindow, false);
 | 
			
		||||
        //     hideMouse();
 | 
			
		||||
        //     Globals.elementManager.unregisterWindow(WindowUtils.getInventoryWindowID(inventory.getId()));
 | 
			
		||||
        //     Globals.controlHandler.setHandlerState(ControlsState.MAIN_GAME);
 | 
			
		||||
        // }});
 | 
			
		||||
        /*
 | 
			
		||||
        Item manipulation
 | 
			
		||||
        */
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,9 @@ package electrosphere.menu;
 | 
			
		||||
 | 
			
		||||
import electrosphere.engine.Globals;
 | 
			
		||||
import electrosphere.engine.signal.Signal.SignalType;
 | 
			
		||||
import electrosphere.entity.state.inventory.InventoryUtils;
 | 
			
		||||
import electrosphere.entity.state.inventory.RelationalInventoryState;
 | 
			
		||||
import electrosphere.entity.state.inventory.UnrelationalInventoryState;
 | 
			
		||||
import electrosphere.menu.ingame.MenuGeneratorsInventory;
 | 
			
		||||
import electrosphere.menu.mainmenu.MenuGeneratorsTitleMenu;
 | 
			
		||||
import electrosphere.renderer.ui.components.PlayerInventoryWindow;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Label;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Window;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement;
 | 
			
		||||
@ -113,6 +111,7 @@ public class WindowUtils {
 | 
			
		||||
     * @param id the id
 | 
			
		||||
     * @return the window string for said inventory window
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public static String getInventoryWindowID(int id){
 | 
			
		||||
        return "INVENTORY-" + id;
 | 
			
		||||
    }
 | 
			
		||||
@ -166,20 +165,9 @@ public class WindowUtils {
 | 
			
		||||
    public static void attemptRedrawInventoryWindows(){
 | 
			
		||||
        //make sure we're client and the player entity exists
 | 
			
		||||
        if(Globals.RUN_CLIENT && Globals.playerEntity != null){
 | 
			
		||||
            //check equip inventory
 | 
			
		||||
            if(InventoryUtils.hasEquipInventory(Globals.playerEntity) && Globals.elementService.containsWindow(WindowStrings.WINDOW_CHARACTER)){
 | 
			
		||||
            if(Globals.elementService.containsWindow(WindowStrings.WINDOW_CHARACTER)){
 | 
			
		||||
                //redraw if necessary
 | 
			
		||||
                RelationalInventoryState inventory = InventoryUtils.getEquipInventory(Globals.playerEntity);
 | 
			
		||||
                WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(inventory));
 | 
			
		||||
            }
 | 
			
		||||
            //check natural inventory
 | 
			
		||||
            if(InventoryUtils.hasNaturalInventory(Globals.playerEntity)){
 | 
			
		||||
                //we need to know the inventory to know which window to check as there can be multiple unrelational inventory screens open
 | 
			
		||||
                UnrelationalInventoryState inventory = InventoryUtils.getNaturalInventory(Globals.playerEntity);
 | 
			
		||||
                if(Globals.elementService.containsWindow(WindowUtils.getInventoryWindowID(inventory.getId()))){
 | 
			
		||||
                    //once we have the natural inventory, redraw
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(inventory));
 | 
			
		||||
                }
 | 
			
		||||
                WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1,462 +1,19 @@
 | 
			
		||||
package electrosphere.menu.ingame;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import electrosphere.audio.VirtualAudioSourceManager.VirtualAudioSourceType;
 | 
			
		||||
import electrosphere.controls.ControlHandler.ControlsState;
 | 
			
		||||
import electrosphere.engine.Globals;
 | 
			
		||||
import electrosphere.engine.signal.Signal.SignalType;
 | 
			
		||||
import electrosphere.entity.Entity;
 | 
			
		||||
import electrosphere.entity.state.equip.ClientEquipState;
 | 
			
		||||
import electrosphere.entity.state.inventory.InventoryUtils;
 | 
			
		||||
import electrosphere.entity.state.inventory.RelationalInventoryState;
 | 
			
		||||
import electrosphere.entity.state.inventory.UnrelationalInventoryState;
 | 
			
		||||
import electrosphere.entity.types.item.ItemUtils;
 | 
			
		||||
import electrosphere.game.data.creature.type.equip.EquipPoint;
 | 
			
		||||
import electrosphere.logger.LoggerInterface;
 | 
			
		||||
import electrosphere.menu.WindowStrings;
 | 
			
		||||
import electrosphere.menu.WindowUtils;
 | 
			
		||||
import electrosphere.renderer.ui.components.PlayerInventoryWindow;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Div;
 | 
			
		||||
import electrosphere.renderer.ui.elements.ImagePanel;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Label;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Window;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.Element;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ClickableElement.ClickEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaAlignment;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaJustification;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.DraggableElement.DragEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.NavigableElement.NavigationEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.events.ClickEvent;
 | 
			
		||||
import electrosphere.renderer.ui.events.DragEvent;
 | 
			
		||||
import electrosphere.renderer.ui.events.NavigationEvent;
 | 
			
		||||
 | 
			
		||||
public class MenuGeneratorsInventory {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The dummy panel
 | 
			
		||||
     */
 | 
			
		||||
    static ImagePanel dummyPanel = null;
 | 
			
		||||
    
 | 
			
		||||
    public static Window createNaturalInventoryMenu(UnrelationalInventoryState inventory){
 | 
			
		||||
        int width = 500;
 | 
			
		||||
        int height = 500;
 | 
			
		||||
 | 
			
		||||
        Window rVal = new Window(Globals.renderingEngine.getOpenGLState(),0,0,width,height,true);
 | 
			
		||||
        rVal.setParentAlignItem(YogaAlignment.Center);
 | 
			
		||||
        rVal.setParentJustifyContent(YogaJustification.Center);
 | 
			
		||||
 | 
			
		||||
        //apply yoga so that the screenspace position of the window can be calculated, that allows proper placement of the absolute elements
 | 
			
		||||
        Globals.signalSystem.post(SignalType.YOGA_APPLY,rVal);
 | 
			
		||||
 | 
			
		||||
        Div div = Div.createDiv();
 | 
			
		||||
        rVal.addChild(div);
 | 
			
		||||
 | 
			
		||||
        rVal.setOnNavigationCallback(new NavigationEventCallback() {public boolean execute(NavigationEvent event){
 | 
			
		||||
            WindowUtils.recursiveSetVisible(Globals.elementService.getWindow(WindowUtils.getInventoryWindowID(inventory.getId())), false);
 | 
			
		||||
            Globals.elementService.unregisterWindow(WindowUtils.getInventoryWindowID(inventory.getId()));
 | 
			
		||||
            //
 | 
			
		||||
            Globals.openInventoriesCount--;
 | 
			
		||||
            if(Globals.openInventoriesCount == 0){
 | 
			
		||||
                Globals.controlHandler.hintUpdateControlState(ControlsState.MAIN_GAME);
 | 
			
		||||
            }
 | 
			
		||||
            //play sound effect
 | 
			
		||||
            if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/closeMenu.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }});
 | 
			
		||||
 | 
			
		||||
        div.setOnDragRelease(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
            LoggerInterface.loggerUI.INFO("Natural inventory received drag release event");
 | 
			
		||||
            if(Globals.draggedItem != null){
 | 
			
		||||
                if(Globals.dragSourceInventory != inventory){
 | 
			
		||||
                    if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                        UnrelationalInventoryState sourceInventory = (UnrelationalInventoryState)Globals.dragSourceInventory;
 | 
			
		||||
                        //transfer item
 | 
			
		||||
                        // sourceInventory.removeItem(Globals.draggedItem);
 | 
			
		||||
                        // inventory.addItem(Globals.draggedItem);
 | 
			
		||||
                        // //null out global state
 | 
			
		||||
                        // Globals.dragSourceInventory = null;
 | 
			
		||||
                        // Globals.draggedItem = null;
 | 
			
		||||
                        Entity item = Globals.draggedItem;
 | 
			
		||||
                        if(ClientEquipState.hasEquipState(Globals.playerEntity) && InventoryUtils.hasEquipInventory(Globals.playerEntity)){
 | 
			
		||||
                            RelationalInventoryState equipInventory = InventoryUtils.getEquipInventory(Globals.playerEntity);
 | 
			
		||||
                            ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                            equipState.commandAttemptUnequip(equipInventory.getItemSlot(item));
 | 
			
		||||
                        }
 | 
			
		||||
                        //clear item container ui
 | 
			
		||||
                        WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                        //dummy panel handling
 | 
			
		||||
                        destroyDummyPanel();
 | 
			
		||||
                        //rerender both inventories
 | 
			
		||||
                        //re-render inventory
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(inventory));
 | 
			
		||||
                        //re-render inventory
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(sourceInventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(sourceInventory));
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    //clear ui
 | 
			
		||||
                    WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    //re-render inventory
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(inventory));
 | 
			
		||||
                }
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
        }});
 | 
			
		||||
 | 
			
		||||
        div.setOnClick(new ClickEventCallback() {public boolean execute(ClickEvent event){
 | 
			
		||||
            WindowUtils.focusWindow(WindowStrings.WINDOW_MENU_INVENTORY);
 | 
			
		||||
            return false;
 | 
			
		||||
        }});
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        //label 1 (inventory)
 | 
			
		||||
        div.addChild(Label.createLabel("INVENTORY"));
 | 
			
		||||
 | 
			
		||||
        int columns = 8;
 | 
			
		||||
        int columnWidth = 60;
 | 
			
		||||
        int rowHeight = 60;
 | 
			
		||||
        for(int i = 0; i < inventory.getCapacity(); i++){
 | 
			
		||||
            String texturePath = "Textures/icons/itemIconEmpty.png";
 | 
			
		||||
            boolean hasItem = false;
 | 
			
		||||
            if(i < inventory.getItems().size()){
 | 
			
		||||
                Entity currentItem = inventory.getItems().get(i);
 | 
			
		||||
                //get texture path from item
 | 
			
		||||
                texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                //flag that this isn't an empty slot
 | 
			
		||||
                hasItem = true;
 | 
			
		||||
            }
 | 
			
		||||
            if(!Globals.assetManager.hasLoadedTexture(texturePath)){
 | 
			
		||||
                Globals.assetManager.addTexturePathtoQueue(texturePath);
 | 
			
		||||
            }
 | 
			
		||||
            int posX = (10 + i % columns * columnWidth);
 | 
			
		||||
            int posY = 60 + (i / columns * rowHeight);
 | 
			
		||||
            int posXf = posX;
 | 
			
		||||
            int posYf = posY;
 | 
			
		||||
            int itemPosX = posX;
 | 
			
		||||
            int itemPosY = posY;
 | 
			
		||||
            int panelWidth = 50;
 | 
			
		||||
            int panelHeight = 50;
 | 
			
		||||
            ImagePanel panel = ImagePanel.createImagePanelAbsolute(posX,posY,panelWidth,panelHeight,texturePath);
 | 
			
		||||
            if(hasItem == true){
 | 
			
		||||
                int itemId = i;
 | 
			
		||||
                panel.setOnDragStart(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
                    // System.out.println("Drag start");
 | 
			
		||||
                    Globals.dragSourceInventory = inventory;
 | 
			
		||||
                    Globals.draggedItem = inventory.getItems().get(itemId);
 | 
			
		||||
                    ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                    container.removeChild(panel);
 | 
			
		||||
                    WindowUtils.pushItemIconToItemWindow(panel);
 | 
			
		||||
                    //add a dummy icon in place of the existing one
 | 
			
		||||
                    dummyPanel = ImagePanel.createImagePanelAbsolute(posXf,posYf,panelWidth,panelHeight,"Textures/icons/itemIconEmpty.png");
 | 
			
		||||
                    container.addChild(dummyPanel);
 | 
			
		||||
                    //play sound effect
 | 
			
		||||
                    if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                        Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventoryGrabItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                    }
 | 
			
		||||
                    return false;
 | 
			
		||||
                }});
 | 
			
		||||
                panel.setOnDrag(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
                    // System.out.println("Drag");
 | 
			
		||||
                    panel.setPositionX(event.getCurrentX() - panelWidth / 2);
 | 
			
		||||
                    panel.setPositionY(event.getCurrentY() - panelHeight / 2);
 | 
			
		||||
                    return false;
 | 
			
		||||
                }});
 | 
			
		||||
                panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                    if(panel.getParent() != div){
 | 
			
		||||
                        if(panel.getParent() != null){
 | 
			
		||||
                            ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                            container.removeChild(panel);
 | 
			
		||||
                        }
 | 
			
		||||
                        div.addChild(panel);
 | 
			
		||||
                        Globals.elementService.fireEvent(event, event.getCurrentX(), event.getCurrentY());
 | 
			
		||||
                    }
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    panel.setPositionX(div.getAbsoluteX() + itemPosX);
 | 
			
		||||
                    panel.setPositionY(div.getAbsoluteY() + itemPosY);
 | 
			
		||||
                    return false;
 | 
			
		||||
                }});
 | 
			
		||||
            } else {
 | 
			
		||||
                panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                    if(Globals.dragSourceInventory instanceof RelationalInventoryState){
 | 
			
		||||
                        RelationalInventoryState sourceInventory = (RelationalInventoryState) Globals.dragSourceInventory;
 | 
			
		||||
                        Entity item = Globals.draggedItem;
 | 
			
		||||
                        if(ClientEquipState.hasEquipState(Globals.playerEntity) && InventoryUtils.hasEquipInventory(Globals.playerEntity)){
 | 
			
		||||
                            RelationalInventoryState equipInventory = InventoryUtils.getEquipInventory(Globals.playerEntity);
 | 
			
		||||
                            ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                            equipState.commandAttemptUnequip(equipInventory.getItemSlot(item));
 | 
			
		||||
                        }
 | 
			
		||||
                        //update ui
 | 
			
		||||
                        // Globals.dragSourceInventory = null;
 | 
			
		||||
                        // Globals.draggedItem = null;
 | 
			
		||||
                        //clear item container ui
 | 
			
		||||
                        WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                        //dummy panel handling
 | 
			
		||||
                        destroyDummyPanel();
 | 
			
		||||
                        //rerender both inventories
 | 
			
		||||
                        //re-render inventory
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(sourceInventory));
 | 
			
		||||
                        //re-render inventory
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(inventory));
 | 
			
		||||
                        //play sound effect
 | 
			
		||||
                        if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                            Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    //now the fun begins :)
 | 
			
		||||
                    //if transfer item
 | 
			
		||||
                    //  remove item from current inventory
 | 
			
		||||
                    //  place item in new inventory
 | 
			
		||||
                    //  trigger recreation of the menu
 | 
			
		||||
                    //if drop item
 | 
			
		||||
                    //  remove item from current inventory
 | 
			
		||||
                    //  create item in world in front of character
 | 
			
		||||
                    //  trigger recreation of the menu
 | 
			
		||||
                    //if neither of above
 | 
			
		||||
                    //  replace item icon position to origin
 | 
			
		||||
                    // System.out.println("Release drag");
 | 
			
		||||
                    return false;
 | 
			
		||||
                }});
 | 
			
		||||
            }
 | 
			
		||||
            // imagePanel.setWidth(width);
 | 
			
		||||
            // imagePanel.setHeight(height);
 | 
			
		||||
            // imagePanel.setTexture(Globals.assetManager.fetchTexture(Globals.blackTexture));
 | 
			
		||||
            div.addChild(panel);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return rVal;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public static Window createCharacterInventoryMenu(RelationalInventoryState inventory){
 | 
			
		||||
        // int screenTop = Globals.WINDOW_HEIGHT - 150;
 | 
			
		||||
        int width = 500;
 | 
			
		||||
        int height = 500;
 | 
			
		||||
        // int screenLeft = (Globals.WINDOW_WIDTH - width)/2;
 | 
			
		||||
        Window rVal = new Window(Globals.renderingEngine.getOpenGLState(),0,0,width,height,true);
 | 
			
		||||
 | 
			
		||||
        Div div = Div.createDiv();
 | 
			
		||||
        rVal.addChild(div);
 | 
			
		||||
 | 
			
		||||
        rVal.setOnNavigationCallback(new NavigationEventCallback() {public boolean execute(NavigationEvent event){
 | 
			
		||||
            WindowUtils.recursiveSetVisible(Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER), false);
 | 
			
		||||
            Globals.elementService.unregisterWindow(WindowStrings.WINDOW_CHARACTER);
 | 
			
		||||
            //
 | 
			
		||||
            Globals.openInventoriesCount--;
 | 
			
		||||
            if(Globals.openInventoriesCount == 0){
 | 
			
		||||
                Globals.controlHandler.hintUpdateControlState(ControlsState.MAIN_GAME);
 | 
			
		||||
            }
 | 
			
		||||
            //play sound effect
 | 
			
		||||
            if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/closeMenu.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        }});
 | 
			
		||||
 | 
			
		||||
        div.setOnDragRelease(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
            LoggerInterface.loggerUI.INFO("Character inventory received drag release event");
 | 
			
		||||
            if(Globals.draggedItem != null){
 | 
			
		||||
                if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                    UnrelationalInventoryState sourceInventory = (UnrelationalInventoryState)Globals.dragSourceInventory;
 | 
			
		||||
                    //null out global state
 | 
			
		||||
                    Globals.dragSourceInventory = null;
 | 
			
		||||
                    Globals.draggedItem = null;
 | 
			
		||||
                    //clear item container ui
 | 
			
		||||
                    WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    //rerender both inventories
 | 
			
		||||
                    //re-render inventory
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(inventory));
 | 
			
		||||
                    //re-render inventory
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(sourceInventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(sourceInventory));
 | 
			
		||||
                }
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
        }});
 | 
			
		||||
 | 
			
		||||
        div.setOnClick(new ClickEventCallback() {public boolean execute(ClickEvent event){
 | 
			
		||||
            WindowUtils.focusWindow(WindowStrings.WINDOW_CHARACTER);
 | 
			
		||||
            return false;
 | 
			
		||||
        }});
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        //label 1 (inventory)
 | 
			
		||||
        Label inventoryLabel = new Label(1.0f);
 | 
			
		||||
        inventoryLabel.setText("CHARACTER");
 | 
			
		||||
        div.addChild(inventoryLabel);
 | 
			
		||||
 | 
			
		||||
        // int columns = 8;
 | 
			
		||||
        // int columnWidth = 60;
 | 
			
		||||
        // int rowHeight = 60;
 | 
			
		||||
        int slotSpacing = 30;
 | 
			
		||||
 | 
			
		||||
        List<String> slots = inventory.getSlots();
 | 
			
		||||
        int numSlots = slots.size();
 | 
			
		||||
        EquipPoint equipPoint = null;
 | 
			
		||||
        // int numRows = (numSlots / 2) + (numSlots % 2 == 1 ? 1 : 0);
 | 
			
		||||
 | 
			
		||||
        int incrementer = 0;
 | 
			
		||||
        for(int i = 0; i < numSlots; i++){
 | 
			
		||||
            String texturePath = "Textures/icons/itemIconEmpty.png";
 | 
			
		||||
            boolean hasItem = false;
 | 
			
		||||
            String slotId = slots.get(i);
 | 
			
		||||
            equipPoint = inventory.getEquipPointFromSlot(slotId);
 | 
			
		||||
            if(!equipPoint.isCombinedPoint()){
 | 
			
		||||
                if(inventory.getItemSlot(slotId) != null){
 | 
			
		||||
                    Entity currentItem = inventory.getItemSlot(slotId);
 | 
			
		||||
                    //get texture path from item
 | 
			
		||||
                    texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                    //flag that this isn't an empty slot
 | 
			
		||||
                    hasItem = true;
 | 
			
		||||
                } else if(inventory.getCombinedPoint(slotId) != null && inventory.hasItemInSlot(inventory.getCombinedPoint(slotId).getEquipPointId())){
 | 
			
		||||
                    Entity currentItem = inventory.getItemSlot(inventory.getCombinedPoint(slotId).getEquipPointId());
 | 
			
		||||
                    //get texture path from item
 | 
			
		||||
                    texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                    //flag that this isn't an empty slot
 | 
			
		||||
                    hasItem = true;
 | 
			
		||||
                    equipPoint = inventory.getCombinedPoint(slotId);
 | 
			
		||||
                    slotId = equipPoint.getEquipPointId();
 | 
			
		||||
                }
 | 
			
		||||
                if(!Globals.assetManager.hasLoadedTexture(texturePath)){
 | 
			
		||||
                    Globals.assetManager.addTexturePathtoQueue(texturePath);
 | 
			
		||||
                }
 | 
			
		||||
                int panelWidth = 50;
 | 
			
		||||
                int panelHeight = 50;
 | 
			
		||||
                int posX = 20;
 | 
			
		||||
                if((incrementer % 2) == 1){
 | 
			
		||||
                    posX = posX + 400;
 | 
			
		||||
                }
 | 
			
		||||
                int posXf = posX;
 | 
			
		||||
                int posY = 60 + (i / 2 * (panelHeight + slotSpacing));
 | 
			
		||||
                int posYf = posY;
 | 
			
		||||
                int itemPosX = posX;
 | 
			
		||||
                int itemPosY = posY;
 | 
			
		||||
                ImagePanel panel = ImagePanel.createImagePanelAbsolute(posX,posY,panelWidth,panelHeight,texturePath);
 | 
			
		||||
                if(hasItem == true){
 | 
			
		||||
                    //literally just here to get around finality of variable within callback
 | 
			
		||||
                    String finalSlotId = slotId;
 | 
			
		||||
                    panel.setOnDragStart(new DragEventCallback() {
 | 
			
		||||
                        public boolean execute(DragEvent event){
 | 
			
		||||
                            LoggerInterface.loggerUI.DEBUG("Drag start");
 | 
			
		||||
                            Globals.dragSourceInventory = inventory;
 | 
			
		||||
                            Globals.draggedItem = inventory.getItemSlot(finalSlotId);
 | 
			
		||||
                            ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                            container.removeChild(panel);
 | 
			
		||||
                            WindowUtils.pushItemIconToItemWindow(panel);
 | 
			
		||||
                            //add a dummy icon in place of the existing one
 | 
			
		||||
                            dummyPanel = ImagePanel.createImagePanelAbsolute(posXf,posYf,panelWidth,panelHeight,"Textures/icons/itemIconEmpty.png");
 | 
			
		||||
                            container.addChild(dummyPanel);
 | 
			
		||||
                            //play sound effect
 | 
			
		||||
                            if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventoryGrabItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                            }
 | 
			
		||||
                            return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    panel.setOnDrag(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
                        // System.out.println("Drag");
 | 
			
		||||
                        panel.setPositionX(event.getCurrentX() - panelWidth / 2);
 | 
			
		||||
                        panel.setPositionY(event.getCurrentY() - panelHeight / 2);
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                        if(panel.getParent() != div){
 | 
			
		||||
                            if(panel.getParent() != null){
 | 
			
		||||
                                ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                                container.removeChild(panel);
 | 
			
		||||
                            }
 | 
			
		||||
                            Globals.elementService.fireEvent(event, event.getCurrentX(), event.getCurrentY());
 | 
			
		||||
                            div.addChild(panel);
 | 
			
		||||
                        }
 | 
			
		||||
                        //dummy panel handling
 | 
			
		||||
                        destroyDummyPanel();
 | 
			
		||||
                        panel.setPositionX(div.getAbsoluteX() + itemPosX);
 | 
			
		||||
                        panel.setPositionY(div.getAbsoluteY() + itemPosY);
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    
 | 
			
		||||
                } else {
 | 
			
		||||
                    int itemId = i;
 | 
			
		||||
                    panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                        // panel.setPositionX(posX);
 | 
			
		||||
                        // panel.setPositionY(posY);
 | 
			
		||||
                        if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                            UnrelationalInventoryState sourceInventory = (UnrelationalInventoryState) Globals.dragSourceInventory;
 | 
			
		||||
                            Entity item = Globals.draggedItem;
 | 
			
		||||
                            if(inventory.canEquipItemToSlot(item, slots.get(itemId))){
 | 
			
		||||
                                //fire equip event to equip state
 | 
			
		||||
                                ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                                equipState.commandAttemptEquip(item,inventory.getEquipPointFromSlot(slots.get(itemId)));
 | 
			
		||||
                                //play sound effect
 | 
			
		||||
                                if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                    Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                }
 | 
			
		||||
                            } else if(inventory.canEquipItemToCombinedSlot(item, slots.get(itemId))){
 | 
			
		||||
                                EquipPoint combinedPoint = inventory.getCombinedPoint(slots.get(itemId));
 | 
			
		||||
                                //fire equip event to equip state
 | 
			
		||||
                                ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                                equipState.commandAttemptEquip(item,combinedPoint);
 | 
			
		||||
                                //play sound effect
 | 
			
		||||
                                if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                    Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            //update ui
 | 
			
		||||
                            Globals.dragSourceInventory = null;
 | 
			
		||||
                            Globals.draggedItem = null;
 | 
			
		||||
                            //clear item container ui
 | 
			
		||||
                            WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                            //dummy panel handling
 | 
			
		||||
                            destroyDummyPanel();
 | 
			
		||||
                            //rerender both inventories
 | 
			
		||||
                            //re-render inventory
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(inventory));
 | 
			
		||||
                            //re-render inventory
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(sourceInventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(sourceInventory));
 | 
			
		||||
                        }
 | 
			
		||||
                        //now the fun begins :)
 | 
			
		||||
                        //if transfer item
 | 
			
		||||
                        //  remove item from current inventory
 | 
			
		||||
                        //  place item in new inventory
 | 
			
		||||
                        //  trigger recreation of the menu
 | 
			
		||||
                        //if drop item
 | 
			
		||||
                        //  remove item from current inventory
 | 
			
		||||
                        //  create item in world in front of character
 | 
			
		||||
                        //  trigger recreation of the menu
 | 
			
		||||
                        //if neither of above
 | 
			
		||||
                        //  replace item icon position to origin
 | 
			
		||||
                        // System.out.println("Release drag");
 | 
			
		||||
                        //rebuild inventory windows
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                }
 | 
			
		||||
                div.addChild(panel);
 | 
			
		||||
 | 
			
		||||
                //create the slot text
 | 
			
		||||
                posX = 80;
 | 
			
		||||
                if((incrementer % 2) == 1){
 | 
			
		||||
                    posX = posX + 190;
 | 
			
		||||
                }
 | 
			
		||||
                posY = posY + 15;
 | 
			
		||||
                Label slotText = new Label(0.7f);
 | 
			
		||||
                slotText.setText(slots.get(i));
 | 
			
		||||
                slotText.setPositionX(posX);
 | 
			
		||||
                slotText.setPositionY(posY);
 | 
			
		||||
                slotText.setAbsolutePosition(true);
 | 
			
		||||
                div.addChild(slotText);
 | 
			
		||||
 | 
			
		||||
                incrementer++;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return rVal;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static Element worldItemDropCaptureWindow(){
 | 
			
		||||
        Window rVal = new Window(Globals.renderingEngine.getOpenGLState(),0,0,Globals.WINDOW_WIDTH,Globals.WINDOW_HEIGHT,true);
 | 
			
		||||
@ -464,35 +21,17 @@ public class MenuGeneratorsInventory {
 | 
			
		||||
        div.setOnDragRelease(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
            LoggerInterface.loggerUI.INFO("World item drop capture window received drag release");
 | 
			
		||||
            if(Globals.draggedItem != null){
 | 
			
		||||
                if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                    UnrelationalInventoryState inventory = (UnrelationalInventoryState) Globals.dragSourceInventory;
 | 
			
		||||
                    //drop item
 | 
			
		||||
                    InventoryUtils.clientAttemptEjectItem(Globals.playerEntity,Globals.draggedItem);
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    //clear ui
 | 
			
		||||
                    WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                    String sourceWindowId = WindowUtils.getInventoryWindowID(inventory.getId());
 | 
			
		||||
                    WindowUtils.replaceWindow(sourceWindowId,MenuGeneratorsInventory.createNaturalInventoryMenu(inventory));
 | 
			
		||||
                    //null globals
 | 
			
		||||
                    Globals.dragSourceInventory = null;
 | 
			
		||||
                    Globals.draggedItem = null;
 | 
			
		||||
                    return false;
 | 
			
		||||
                } else if(Globals.dragSourceInventory instanceof RelationalInventoryState){
 | 
			
		||||
                    RelationalInventoryState inventory = (RelationalInventoryState) Globals.dragSourceInventory;
 | 
			
		||||
                    //drop item
 | 
			
		||||
                    InventoryUtils.clientAttemptEjectItem(Globals.playerEntity,Globals.draggedItem);
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    //clear ui
 | 
			
		||||
                    WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                    String sourceWindowId = WindowStrings.WINDOW_CHARACTER;
 | 
			
		||||
                    WindowUtils.replaceWindow(sourceWindowId,MenuGeneratorsInventory.createCharacterInventoryMenu(inventory));
 | 
			
		||||
                    WindowUtils.replaceWindow(sourceWindowId,PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                    //null globals
 | 
			
		||||
                    Globals.dragSourceInventory = null;
 | 
			
		||||
                    Globals.draggedItem = null;
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
                // }
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
        }});
 | 
			
		||||
@ -504,16 +43,4 @@ public class MenuGeneratorsInventory {
 | 
			
		||||
        return rVal;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Destroys the dummy panel
 | 
			
		||||
     */
 | 
			
		||||
    public static void destroyDummyPanel(){
 | 
			
		||||
        if(dummyPanel != null && dummyPanel.getParent() != null){
 | 
			
		||||
            ContainerElement container = (ContainerElement)dummyPanel.getParent();
 | 
			
		||||
            container.removeChild(dummyPanel);
 | 
			
		||||
            dummyPanel.destroy();
 | 
			
		||||
            dummyPanel = null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -75,8 +75,7 @@ public class CharacterCustomizer {
 | 
			
		||||
        for(VisualAttribute attribute : selectedRaceType.getVisualAttributes()){
 | 
			
		||||
            if(attribute.getType().equals(VisualAttribute.TYPE_BONE)){
 | 
			
		||||
                //add label for slider
 | 
			
		||||
                Label sliderName = new Label(0.6f);
 | 
			
		||||
                sliderName.setText(attribute.getAttributeId());
 | 
			
		||||
                Label sliderName = Label.createLabel(attribute.getAttributeId());
 | 
			
		||||
                sliderName.setMinWidth(200);
 | 
			
		||||
                //add a slider
 | 
			
		||||
                Slider boneSlider = Slider.createSlider((ValueChangeEvent event) -> {
 | 
			
		||||
@ -108,8 +107,7 @@ public class CharacterCustomizer {
 | 
			
		||||
                scrollable.addChild(Div.createRow(sliderName,boneSlider));
 | 
			
		||||
            } else if(attribute.getType().equals(VisualAttribute.TYPE_REMESH)){
 | 
			
		||||
                //add label for carousel
 | 
			
		||||
                Label scrollableName = new Label(0.6f);
 | 
			
		||||
                scrollableName.setText(attribute.getAttributeId());
 | 
			
		||||
                Label scrollableName = Label.createLabel(attribute.getAttributeId());
 | 
			
		||||
                scrollableName.setMinWidth(200);
 | 
			
		||||
                //add a carousel
 | 
			
		||||
                StringCarousel variantCarousel = StringCarousel.create(
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ import java.util.List;
 | 
			
		||||
 | 
			
		||||
import electrosphere.audio.VirtualAudioSourceManager.VirtualAudioSourceType;
 | 
			
		||||
import electrosphere.engine.Globals;
 | 
			
		||||
import electrosphere.engine.signal.Signal.SignalType;
 | 
			
		||||
import electrosphere.entity.Entity;
 | 
			
		||||
import electrosphere.entity.state.equip.ClientEquipState;
 | 
			
		||||
import electrosphere.entity.state.inventory.InventoryUtils;
 | 
			
		||||
@ -14,11 +15,12 @@ import electrosphere.game.data.creature.type.equip.EquipPoint;
 | 
			
		||||
import electrosphere.logger.LoggerInterface;
 | 
			
		||||
import electrosphere.menu.WindowStrings;
 | 
			
		||||
import electrosphere.menu.WindowUtils;
 | 
			
		||||
import electrosphere.menu.ingame.MenuGeneratorsInventory;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Div;
 | 
			
		||||
import electrosphere.renderer.ui.elements.ImagePanel;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Label;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ClickableElement.ClickEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaAlignment;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaJustification;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.DraggableElement.DragEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.Element;
 | 
			
		||||
@ -30,10 +32,6 @@ import electrosphere.renderer.ui.events.DragEvent;
 | 
			
		||||
 */
 | 
			
		||||
public class EquipmentInventoryPanel {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The dummy panel
 | 
			
		||||
     */
 | 
			
		||||
    static ImagePanel dummyPanel = null;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@ -45,25 +43,22 @@ public class EquipmentInventoryPanel {
 | 
			
		||||
        RelationalInventoryState inventory = InventoryUtils.getEquipInventory(entity);
 | 
			
		||||
        
 | 
			
		||||
        Div div = Div.createDiv();
 | 
			
		||||
        div.setJustifyContent(YogaJustification.Center);
 | 
			
		||||
        div.setMarginBottom(25);
 | 
			
		||||
        div.setMarginLeft(25);
 | 
			
		||||
        div.setMarginRight(25);
 | 
			
		||||
        div.setMarginTop(25);
 | 
			
		||||
 | 
			
		||||
        div.setOnDragRelease(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
            LoggerInterface.loggerUI.INFO("Character inventory received drag release event");
 | 
			
		||||
            if(Globals.draggedItem != null){
 | 
			
		||||
                if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                    UnrelationalInventoryState sourceInventory = (UnrelationalInventoryState)Globals.dragSourceInventory;
 | 
			
		||||
                    //null out global state
 | 
			
		||||
                    Globals.dragSourceInventory = null;
 | 
			
		||||
                    Globals.draggedItem = null;
 | 
			
		||||
                    //clear item container ui
 | 
			
		||||
                    WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    //rerender both inventories
 | 
			
		||||
                    //re-render inventory
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(inventory));
 | 
			
		||||
                    //re-render inventory
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(sourceInventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(sourceInventory));
 | 
			
		||||
                }
 | 
			
		||||
                //null out global state
 | 
			
		||||
                Globals.dragSourceInventory = null;
 | 
			
		||||
                Globals.draggedItem = null;
 | 
			
		||||
                //clear item container ui
 | 
			
		||||
                WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                //re-render inventory
 | 
			
		||||
                WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return true;
 | 
			
		||||
@ -76,123 +71,124 @@ public class EquipmentInventoryPanel {
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        //label 1 (inventory)
 | 
			
		||||
        Label inventoryLabel = new Label(1.0f);
 | 
			
		||||
        inventoryLabel.setText("CHARACTER");
 | 
			
		||||
        Label inventoryLabel = Label.createLabel("CHARACTER");
 | 
			
		||||
        inventoryLabel.setMarginBottom(10);
 | 
			
		||||
        div.addChild(inventoryLabel);
 | 
			
		||||
 | 
			
		||||
        // int columns = 8;
 | 
			
		||||
        // int columnWidth = 60;
 | 
			
		||||
        // int rowHeight = 60;
 | 
			
		||||
        int slotSpacing = 30;
 | 
			
		||||
 | 
			
		||||
        List<String> slots = inventory.getSlots();
 | 
			
		||||
        int numSlots = slots.size();
 | 
			
		||||
        EquipPoint equipPoint = null;
 | 
			
		||||
        // int numRows = (numSlots / 2) + (numSlots % 2 == 1 ? 1 : 0);
 | 
			
		||||
        {
 | 
			
		||||
            Div leftSlots = Div.createCol();
 | 
			
		||||
            leftSlots.setFlexGrow(1);
 | 
			
		||||
            Div rightSlots = Div.createCol();
 | 
			
		||||
            rightSlots.setFlexGrow(1);
 | 
			
		||||
            rightSlots.setAlignItems(YogaAlignment.End);
 | 
			
		||||
 | 
			
		||||
        int incrementer = 0;
 | 
			
		||||
        for(int i = 0; i < numSlots; i++){
 | 
			
		||||
            String texturePath = "Textures/ui/uiFrame1.png";
 | 
			
		||||
            boolean hasItem = false;
 | 
			
		||||
            String slotId = slots.get(i);
 | 
			
		||||
            equipPoint = inventory.getEquipPointFromSlot(slotId);
 | 
			
		||||
            if(!equipPoint.isCombinedPoint()){
 | 
			
		||||
                if(inventory.getItemSlot(slotId) != null){
 | 
			
		||||
                    Entity currentItem = inventory.getItemSlot(slotId);
 | 
			
		||||
                    //get texture path from item
 | 
			
		||||
                    texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                    //flag that this isn't an empty slot
 | 
			
		||||
                    hasItem = true;
 | 
			
		||||
                } else if(inventory.getCombinedPoint(slotId) != null && inventory.hasItemInSlot(inventory.getCombinedPoint(slotId).getEquipPointId())){
 | 
			
		||||
                    Entity currentItem = inventory.getItemSlot(inventory.getCombinedPoint(slotId).getEquipPointId());
 | 
			
		||||
                    //get texture path from item
 | 
			
		||||
                    texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                    //flag that this isn't an empty slot
 | 
			
		||||
                    hasItem = true;
 | 
			
		||||
                    equipPoint = inventory.getCombinedPoint(slotId);
 | 
			
		||||
                    slotId = equipPoint.getEquipPointId();
 | 
			
		||||
                }
 | 
			
		||||
                if(!Globals.assetManager.hasLoadedTexture(texturePath)){
 | 
			
		||||
                    Globals.assetManager.addTexturePathtoQueue(texturePath);
 | 
			
		||||
                }
 | 
			
		||||
                int panelWidth = 50;
 | 
			
		||||
                int panelHeight = 50;
 | 
			
		||||
                int posX = 20;
 | 
			
		||||
                if((incrementer % 2) == 1){
 | 
			
		||||
                    posX = posX + 400;
 | 
			
		||||
                }
 | 
			
		||||
                int posXf = posX;
 | 
			
		||||
                int posY = 60 + (i / 2 * (panelHeight + slotSpacing));
 | 
			
		||||
                int posYf = posY;
 | 
			
		||||
                int itemPosX = posX;
 | 
			
		||||
                int itemPosY = posY;
 | 
			
		||||
                ImagePanel panel = ImagePanel.createImagePanelAbsolute(posX,posY,panelWidth,panelHeight,texturePath);
 | 
			
		||||
                if(hasItem == true){
 | 
			
		||||
                    //literally just here to get around finality of variable within callback
 | 
			
		||||
                    String finalSlotId = slotId;
 | 
			
		||||
                    panel.setOnDragStart(new DragEventCallback() {
 | 
			
		||||
                        public boolean execute(DragEvent event){
 | 
			
		||||
                            LoggerInterface.loggerUI.DEBUG("Drag start");
 | 
			
		||||
                            Globals.dragSourceInventory = inventory;
 | 
			
		||||
                            Globals.draggedItem = inventory.getItemSlot(finalSlotId);
 | 
			
		||||
                            ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                            container.removeChild(panel);
 | 
			
		||||
                            WindowUtils.pushItemIconToItemWindow(panel);
 | 
			
		||||
                            //add a dummy icon in place of the existing one
 | 
			
		||||
                            dummyPanel = ImagePanel.createImagePanelAbsolute(posXf,posYf,panelWidth,panelHeight,"Textures/ui/uiFrame1.png");
 | 
			
		||||
                            container.addChild(dummyPanel);
 | 
			
		||||
                            //play sound effect
 | 
			
		||||
                            if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventoryGrabItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                            }
 | 
			
		||||
                            return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    panel.setOnDrag(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
                        // System.out.println("Drag");
 | 
			
		||||
                        panel.setPositionX(event.getCurrentX() - panelWidth / 2);
 | 
			
		||||
                        panel.setPositionY(event.getCurrentY() - panelHeight / 2);
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                        if(panel.getParent() != div){
 | 
			
		||||
                            if(panel.getParent() != null){
 | 
			
		||||
            List<String> slots = inventory.getSlots();
 | 
			
		||||
            EquipPoint equipPoint = null;
 | 
			
		||||
 | 
			
		||||
            for(int i = 0; i < slots.size(); i++){
 | 
			
		||||
                Div colContainer = i % 2 == 0 ? leftSlots : rightSlots;
 | 
			
		||||
                boolean endAlign = i % 2 == 1;
 | 
			
		||||
                String texturePath = "Textures/ui/uiFrame1.png";
 | 
			
		||||
                boolean hasItem = false;
 | 
			
		||||
                String slotId = slots.get(i);
 | 
			
		||||
                equipPoint = inventory.getEquipPointFromSlot(slotId);
 | 
			
		||||
                if(!equipPoint.isCombinedPoint()){
 | 
			
		||||
                    if(inventory.getItemSlot(slotId) != null && inventory.getItemSlot(slotId) != Globals.draggedItem){
 | 
			
		||||
                        Entity currentItem = inventory.getItemSlot(slotId);
 | 
			
		||||
                        //get texture path from item
 | 
			
		||||
                        texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                        //flag that this isn't an empty slot
 | 
			
		||||
                        hasItem = true;
 | 
			
		||||
                    } else if(inventory.getCombinedPoint(slotId) != null && inventory.hasItemInSlot(inventory.getCombinedPoint(slotId).getEquipPointId()) && inventory.getItemSlot(inventory.getCombinedPoint(slotId).getEquipPointId()) != Globals.draggedItem){
 | 
			
		||||
                        Entity currentItem = inventory.getItemSlot(inventory.getCombinedPoint(slotId).getEquipPointId());
 | 
			
		||||
                        //get texture path from item
 | 
			
		||||
                        texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
                        //flag that this isn't an empty slot
 | 
			
		||||
                        hasItem = true;
 | 
			
		||||
                        equipPoint = inventory.getCombinedPoint(slotId);
 | 
			
		||||
                        slotId = equipPoint.getEquipPointId();
 | 
			
		||||
                    }
 | 
			
		||||
                    if(!Globals.assetManager.hasLoadedTexture(texturePath)){
 | 
			
		||||
                        Globals.assetManager.addTexturePathtoQueue(texturePath);
 | 
			
		||||
                    }
 | 
			
		||||
                    int panelWidth = 50;
 | 
			
		||||
                    int panelHeight = 50;
 | 
			
		||||
                    ImagePanel panel = ImagePanel.createImagePanel(texturePath);
 | 
			
		||||
                    panel.setWidth(50);
 | 
			
		||||
                    panel.setHeight(50);
 | 
			
		||||
                    panel.setMarginBottom(5);
 | 
			
		||||
                    panel.setMarginLeft(15);
 | 
			
		||||
                    panel.setMarginRight(15);
 | 
			
		||||
                    panel.setMarginTop(15);
 | 
			
		||||
                    if(endAlign){
 | 
			
		||||
                        panel.setAlignSelf(YogaAlignment.End);
 | 
			
		||||
                    }
 | 
			
		||||
                    if(hasItem == true){
 | 
			
		||||
                        //literally just here to get around finality of variable within callback
 | 
			
		||||
                        String finalSlotId = slotId;
 | 
			
		||||
                        panel.setOnDragStart(new DragEventCallback() {
 | 
			
		||||
                            public boolean execute(DragEvent event){
 | 
			
		||||
                                LoggerInterface.loggerUI.DEBUG("Drag start");
 | 
			
		||||
                                Globals.dragSourceInventory = inventory;
 | 
			
		||||
                                Globals.draggedItem = inventory.getItemSlot(finalSlotId);
 | 
			
		||||
                                ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                                container.removeChild(panel);
 | 
			
		||||
                            }
 | 
			
		||||
                            Globals.elementService.fireEvent(event, event.getCurrentX(), event.getCurrentY());
 | 
			
		||||
                            div.addChild(panel);
 | 
			
		||||
                        }
 | 
			
		||||
                        //dummy panel handling
 | 
			
		||||
                        destroyDummyPanel();
 | 
			
		||||
                        panel.setPositionX(div.getAbsoluteX() + itemPosX);
 | 
			
		||||
                        panel.setPositionY(div.getAbsoluteY() + itemPosY);
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    
 | 
			
		||||
                } else {
 | 
			
		||||
                    int itemId = i;
 | 
			
		||||
                    panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                        // panel.setPositionX(posX);
 | 
			
		||||
                        // panel.setPositionY(posY);
 | 
			
		||||
                        if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                            UnrelationalInventoryState sourceInventory = (UnrelationalInventoryState) Globals.dragSourceInventory;
 | 
			
		||||
                            Entity item = Globals.draggedItem;
 | 
			
		||||
                            if(inventory.canEquipItemToSlot(item, slots.get(itemId))){
 | 
			
		||||
                                //fire equip event to equip state
 | 
			
		||||
                                ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                                equipState.commandAttemptEquip(item,inventory.getEquipPointFromSlot(slots.get(itemId)));
 | 
			
		||||
                                WindowUtils.pushItemIconToItemWindow(panel);
 | 
			
		||||
                                panel.setAbsolutePosition(true);
 | 
			
		||||
                                WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                                //play sound effect
 | 
			
		||||
                                if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                    Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                    Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventoryGrabItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                }
 | 
			
		||||
                            } else if(inventory.canEquipItemToCombinedSlot(item, slots.get(itemId))){
 | 
			
		||||
                                EquipPoint combinedPoint = inventory.getCombinedPoint(slots.get(itemId));
 | 
			
		||||
                                //fire equip event to equip state
 | 
			
		||||
                                ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                                equipState.commandAttemptEquip(item,combinedPoint);
 | 
			
		||||
                                //play sound effect
 | 
			
		||||
                                if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                    Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                return false;
 | 
			
		||||
                        }});
 | 
			
		||||
                        panel.setOnDrag(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
                            // System.out.println("Drag");
 | 
			
		||||
                            panel.setPositionX(event.getCurrentX() - panelWidth / 2);
 | 
			
		||||
                            panel.setPositionY(event.getCurrentY() - panelHeight / 2);
 | 
			
		||||
                            Globals.signalSystem.post(SignalType.YOGA_APPLY, Globals.elementService.getWindow(WindowStrings.WINDOW_ITEM_DRAG_CONTAINER));
 | 
			
		||||
                            return false;
 | 
			
		||||
                        }});
 | 
			
		||||
                        panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                            if(panel.getParent() != colContainer){
 | 
			
		||||
                                if(panel.getParent() != null){
 | 
			
		||||
                                    ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                                    container.removeChild(panel);
 | 
			
		||||
                                }
 | 
			
		||||
                                Globals.elementService.fireEvent(event, event.getCurrentX(), event.getCurrentY());
 | 
			
		||||
                                panel.setAbsolutePosition(false);
 | 
			
		||||
                            }
 | 
			
		||||
                            return false;
 | 
			
		||||
                        }});
 | 
			
		||||
                        
 | 
			
		||||
                    } else {
 | 
			
		||||
                        int itemId = i;
 | 
			
		||||
                        panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                            if(Globals.dragSourceInventory instanceof RelationalInventoryState){
 | 
			
		||||
                                Entity item = Globals.draggedItem;
 | 
			
		||||
                                if(ItemUtils.getContainingParent(item) != Globals.playerEntity){
 | 
			
		||||
                                    throw new UnsupportedOperationException("Unimplemented!");
 | 
			
		||||
                                }
 | 
			
		||||
                            } else if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                                Entity item = Globals.draggedItem;
 | 
			
		||||
                                if(inventory.canEquipItemToSlot(item, slots.get(itemId))){
 | 
			
		||||
                                    //fire equip event to equip state
 | 
			
		||||
                                    ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                                    equipState.commandAttemptEquip(item,inventory.getEquipPointFromSlot(slots.get(itemId)));
 | 
			
		||||
                                    //play sound effect
 | 
			
		||||
                                    if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                        Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                    }
 | 
			
		||||
                                } else if(inventory.canEquipItemToCombinedSlot(item, slots.get(itemId))){
 | 
			
		||||
                                    EquipPoint combinedPoint = inventory.getCombinedPoint(slots.get(itemId));
 | 
			
		||||
                                    //fire equip event to equip state
 | 
			
		||||
                                    ClientEquipState equipState = ClientEquipState.getEquipState(Globals.playerEntity);
 | 
			
		||||
                                    equipState.commandAttemptEquip(item,combinedPoint);
 | 
			
		||||
                                    //play sound effect
 | 
			
		||||
                                    if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                        Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                                    }
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            //update ui
 | 
			
		||||
@ -200,62 +196,30 @@ public class EquipmentInventoryPanel {
 | 
			
		||||
                            Globals.draggedItem = null;
 | 
			
		||||
                            //clear item container ui
 | 
			
		||||
                            WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                            //dummy panel handling
 | 
			
		||||
                            destroyDummyPanel();
 | 
			
		||||
                            //rerender both inventories
 | 
			
		||||
                            //re-render inventory
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(inventory));
 | 
			
		||||
                            //re-render inventory
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(sourceInventory.getId()), PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                        }
 | 
			
		||||
                        //now the fun begins :)
 | 
			
		||||
                        //if transfer item
 | 
			
		||||
                        //  remove item from current inventory
 | 
			
		||||
                        //  place item in new inventory
 | 
			
		||||
                        //  trigger recreation of the menu
 | 
			
		||||
                        //if drop item
 | 
			
		||||
                        //  remove item from current inventory
 | 
			
		||||
                        //  create item in world in front of character
 | 
			
		||||
                        //  trigger recreation of the menu
 | 
			
		||||
                        //if neither of above
 | 
			
		||||
                        //  replace item icon position to origin
 | 
			
		||||
                        // System.out.println("Release drag");
 | 
			
		||||
                        //rebuild inventory windows
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                }
 | 
			
		||||
                div.addChild(panel);
 | 
			
		||||
                            //rerender inventories
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                            return false;
 | 
			
		||||
                        }});
 | 
			
		||||
                    }
 | 
			
		||||
                    colContainer.addChild(panel);
 | 
			
		||||
 | 
			
		||||
                //create the slot text
 | 
			
		||||
                posX = 80;
 | 
			
		||||
                if((incrementer % 2) == 1){
 | 
			
		||||
                    posX = posX + 190;
 | 
			
		||||
                    //create the slot text
 | 
			
		||||
                    Label slotLabel = Label.createLabel(slots.get(i));
 | 
			
		||||
                    slotLabel.setMarginBottom(5);
 | 
			
		||||
                    slotLabel.setMarginLeft(15);
 | 
			
		||||
                    slotLabel.setMarginRight(15);
 | 
			
		||||
                    slotLabel.setMarginTop(5);
 | 
			
		||||
                    colContainer.addChild(slotLabel);
 | 
			
		||||
                }
 | 
			
		||||
                posY = posY + 15;
 | 
			
		||||
                Label slotText = new Label(0.7f);
 | 
			
		||||
                slotText.setText(slots.get(i));
 | 
			
		||||
                slotText.setPositionX(posX);
 | 
			
		||||
                slotText.setPositionY(posY);
 | 
			
		||||
                slotText.setAbsolutePosition(true);
 | 
			
		||||
                div.addChild(slotText);
 | 
			
		||||
 | 
			
		||||
                incrementer++;
 | 
			
		||||
            }
 | 
			
		||||
            Div columnContainer = Div.createRow(leftSlots,rightSlots);
 | 
			
		||||
            columnContainer.setAlignItems(YogaAlignment.Between);
 | 
			
		||||
            columnContainer.setFlexGrow(1);
 | 
			
		||||
            div.addChild(columnContainer);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return div;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Destroys the dummy panel
 | 
			
		||||
     */
 | 
			
		||||
    public static void destroyDummyPanel(){
 | 
			
		||||
        if(dummyPanel != null && dummyPanel.getParent() != null){
 | 
			
		||||
            ContainerElement container = (ContainerElement)dummyPanel.getParent();
 | 
			
		||||
            container.removeChild(dummyPanel);
 | 
			
		||||
            dummyPanel.destroy();
 | 
			
		||||
            dummyPanel = null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,7 @@ package electrosphere.renderer.ui.components;
 | 
			
		||||
 | 
			
		||||
import electrosphere.audio.VirtualAudioSourceManager.VirtualAudioSourceType;
 | 
			
		||||
import electrosphere.engine.Globals;
 | 
			
		||||
import electrosphere.engine.signal.Signal.SignalType;
 | 
			
		||||
import electrosphere.entity.Entity;
 | 
			
		||||
import electrosphere.entity.state.equip.ClientEquipState;
 | 
			
		||||
import electrosphere.entity.state.inventory.InventoryUtils;
 | 
			
		||||
@ -11,12 +12,13 @@ import electrosphere.entity.types.item.ItemUtils;
 | 
			
		||||
import electrosphere.logger.LoggerInterface;
 | 
			
		||||
import electrosphere.menu.WindowStrings;
 | 
			
		||||
import electrosphere.menu.WindowUtils;
 | 
			
		||||
import electrosphere.menu.ingame.MenuGeneratorsInventory;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Div;
 | 
			
		||||
import electrosphere.renderer.ui.elements.ImagePanel;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Label;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ClickableElement.ClickEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaAlignment;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaFlexDirection;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaJustification;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.DraggableElement.DragEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.Element;
 | 
			
		||||
@ -28,11 +30,6 @@ import electrosphere.renderer.ui.events.DragEvent;
 | 
			
		||||
 */
 | 
			
		||||
public class NaturalInventoryPanel {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The dummy panel
 | 
			
		||||
     */
 | 
			
		||||
    static ImagePanel dummyPanel = null;
 | 
			
		||||
    
 | 
			
		||||
    /**
 | 
			
		||||
     * Creates the natural inventory panel
 | 
			
		||||
     * @param entity The entity who has the inventory
 | 
			
		||||
@ -43,13 +40,17 @@ public class NaturalInventoryPanel {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        Div div = Div.createDiv();
 | 
			
		||||
        div.setJustifyContent(YogaJustification.Center);
 | 
			
		||||
        div.setMarginBottom(25);
 | 
			
		||||
        div.setMarginLeft(25);
 | 
			
		||||
        div.setMarginRight(25);
 | 
			
		||||
        div.setMarginTop(25);
 | 
			
		||||
 | 
			
		||||
        div.setOnDragRelease(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
            LoggerInterface.loggerUI.INFO("Natural inventory received drag release event");
 | 
			
		||||
            if(Globals.draggedItem != null){
 | 
			
		||||
                if(Globals.dragSourceInventory != inventory){
 | 
			
		||||
                    if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                        UnrelationalInventoryState sourceInventory = (UnrelationalInventoryState)Globals.dragSourceInventory;
 | 
			
		||||
                        //transfer item
 | 
			
		||||
                        // sourceInventory.removeItem(Globals.draggedItem);
 | 
			
		||||
                        // inventory.addItem(Globals.draggedItem);
 | 
			
		||||
@ -64,24 +65,15 @@ public class NaturalInventoryPanel {
 | 
			
		||||
                        }
 | 
			
		||||
                        //clear item container ui
 | 
			
		||||
                        WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                        //dummy panel handling
 | 
			
		||||
                        destroyDummyPanel();
 | 
			
		||||
                        //rerender both inventories
 | 
			
		||||
                        //re-render inventory
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                        //re-render inventory
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(sourceInventory.getId()), PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    //clear ui
 | 
			
		||||
                    WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                    //dummy panel handling
 | 
			
		||||
                    destroyDummyPanel();
 | 
			
		||||
                    //re-render inventory
 | 
			
		||||
                    WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                }
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            //clear ui
 | 
			
		||||
            WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
            //re-render inventory
 | 
			
		||||
            WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
            return true;
 | 
			
		||||
        }});
 | 
			
		||||
 | 
			
		||||
@ -92,7 +84,9 @@ public class NaturalInventoryPanel {
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        //label 1 (inventory)
 | 
			
		||||
        div.addChild(Label.createLabel("INVENTORY"));
 | 
			
		||||
        Label menuTitle = Label.createLabel("INVENTORY");
 | 
			
		||||
        menuTitle.setMarginBottom(10);
 | 
			
		||||
        div.addChild(menuTitle);
 | 
			
		||||
 | 
			
		||||
        {
 | 
			
		||||
            //contains all the item panels
 | 
			
		||||
@ -102,7 +96,7 @@ public class NaturalInventoryPanel {
 | 
			
		||||
            for(int i = 0; i < inventory.getCapacity(); i++){
 | 
			
		||||
                String texturePath = "Textures/ui/uiFrame1.png";
 | 
			
		||||
                boolean hasItem = false;
 | 
			
		||||
                if(i < inventory.getItems().size()){
 | 
			
		||||
                if(i < inventory.getItems().size() && inventory.getItems().get(i) != Globals.draggedItem){
 | 
			
		||||
                    Entity currentItem = inventory.getItems().get(i);
 | 
			
		||||
                    //get texture path from item
 | 
			
		||||
                    texturePath = ItemUtils.getItemIcon(currentItem);
 | 
			
		||||
@ -117,9 +111,13 @@ public class NaturalInventoryPanel {
 | 
			
		||||
                ImagePanel panel = ImagePanel.createImagePanel(texturePath);
 | 
			
		||||
                panel.setMinWidth(panelWidth);
 | 
			
		||||
                panel.setMinHeight(panelHeight);
 | 
			
		||||
                panel.setMarginRight(10);
 | 
			
		||||
                panel.setMarginBottom(10);
 | 
			
		||||
                if(hasItem == true){
 | 
			
		||||
                panel.setMarginRight(15);
 | 
			
		||||
                panel.setMarginBottom(15);
 | 
			
		||||
                panel.setMarginLeft(15);
 | 
			
		||||
                panel.setMarginTop(15);
 | 
			
		||||
                panel.setAlignSelf(YogaAlignment.Start);
 | 
			
		||||
                panel.setAbsolutePosition(false);
 | 
			
		||||
                if(hasItem == true && inventory.getItems().get(i) != Globals.draggedItem){
 | 
			
		||||
                    int itemId = i;
 | 
			
		||||
                    panel.setOnDragStart(new DragEventCallback() {public boolean execute(DragEvent event){
 | 
			
		||||
                        // System.out.println("Drag start");
 | 
			
		||||
@ -132,13 +130,7 @@ public class NaturalInventoryPanel {
 | 
			
		||||
                        panel.setAbsolutePosition(true);
 | 
			
		||||
                        panel.setPositionX(panel.getAbsoluteX());
 | 
			
		||||
                        panel.setPositionY(panel.getAbsoluteY());
 | 
			
		||||
                        //add a dummy icon in place of the existing one
 | 
			
		||||
                        dummyPanel = ImagePanel.createImagePanel("Textures/ui/uiFrame1.png");
 | 
			
		||||
                        dummyPanel.setMinWidth(panelWidth);
 | 
			
		||||
                        dummyPanel.setMinHeight(panelHeight);
 | 
			
		||||
                        dummyPanel.setMarginRight(10);
 | 
			
		||||
                        dummyPanel.setMarginBottom(10);
 | 
			
		||||
                        panelContainer.addChild(dummyPanel);
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                        //play sound effect
 | 
			
		||||
                        if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                            Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventoryGrabItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
@ -149,6 +141,7 @@ public class NaturalInventoryPanel {
 | 
			
		||||
                        // System.out.println("Drag");
 | 
			
		||||
                        panel.setPositionX(event.getCurrentX() - panelWidth / 2);
 | 
			
		||||
                        panel.setPositionY(event.getCurrentY() - panelHeight / 2);
 | 
			
		||||
                        Globals.signalSystem.post(SignalType.YOGA_APPLY, Globals.elementService.getWindow(WindowStrings.WINDOW_ITEM_DRAG_CONTAINER));
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                    panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
@ -157,52 +150,33 @@ public class NaturalInventoryPanel {
 | 
			
		||||
                                ContainerElement container = (ContainerElement)panel.getParent();
 | 
			
		||||
                                container.removeChild(panel);
 | 
			
		||||
                            }
 | 
			
		||||
                            div.addChild(panel);
 | 
			
		||||
                            panel.setAbsolutePosition(false);
 | 
			
		||||
                            Globals.elementService.fireEvent(event, event.getCurrentX(), event.getCurrentY());
 | 
			
		||||
                        }
 | 
			
		||||
                        //dummy panel handling
 | 
			
		||||
                        destroyDummyPanel();
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                } else {
 | 
			
		||||
                    panel.setOnDragRelease(new DragEventCallback(){public boolean execute(DragEvent event){
 | 
			
		||||
                        if(Globals.dragSourceInventory instanceof RelationalInventoryState){
 | 
			
		||||
                            RelationalInventoryState sourceInventory = (RelationalInventoryState) Globals.dragSourceInventory;
 | 
			
		||||
                            Entity item = Globals.draggedItem;
 | 
			
		||||
                            if(ClientEquipState.hasEquipState(entity) && InventoryUtils.hasEquipInventory(entity)){
 | 
			
		||||
                                RelationalInventoryState equipInventory = InventoryUtils.getEquipInventory(entity);
 | 
			
		||||
                                ClientEquipState equipState = ClientEquipState.getEquipState(entity);
 | 
			
		||||
                                equipState.commandAttemptUnequip(equipInventory.getItemSlot(item));
 | 
			
		||||
                            }
 | 
			
		||||
                            //update ui
 | 
			
		||||
                            // Globals.dragSourceInventory = null;
 | 
			
		||||
                            // Globals.draggedItem = null;
 | 
			
		||||
                            //clear item container ui
 | 
			
		||||
                            WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                            //dummy panel handling
 | 
			
		||||
                            destroyDummyPanel();
 | 
			
		||||
                            //rerender both inventories
 | 
			
		||||
                            //re-render inventory
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, MenuGeneratorsInventory.createCharacterInventoryMenu(sourceInventory));
 | 
			
		||||
                            //re-render inventory
 | 
			
		||||
                            WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                            //play sound effect
 | 
			
		||||
                            if(Globals.virtualAudioSourceManager != null){
 | 
			
		||||
                                Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventorySlotItem.ogg", VirtualAudioSourceType.UI, false);
 | 
			
		||||
                        } else if(Globals.dragSourceInventory instanceof UnrelationalInventoryState){
 | 
			
		||||
                            Entity item = Globals.draggedItem;
 | 
			
		||||
                            if(ItemUtils.getContainingParent(item) != Globals.playerEntity){
 | 
			
		||||
                                throw new UnsupportedOperationException("Unimplemented!");
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        //now the fun begins :)
 | 
			
		||||
                        //if transfer item
 | 
			
		||||
                        //  remove item from current inventory
 | 
			
		||||
                        //  place item in new inventory
 | 
			
		||||
                        //  trigger recreation of the menu
 | 
			
		||||
                        //if drop item
 | 
			
		||||
                        //  remove item from current inventory
 | 
			
		||||
                        //  create item in world in front of character
 | 
			
		||||
                        //  trigger recreation of the menu
 | 
			
		||||
                        //if neither of above
 | 
			
		||||
                        //  replace item icon position to origin
 | 
			
		||||
                        // System.out.println("Release drag");
 | 
			
		||||
                        //update ui
 | 
			
		||||
                        Globals.dragSourceInventory = null;
 | 
			
		||||
                        Globals.draggedItem = null;
 | 
			
		||||
                        //clear item container ui
 | 
			
		||||
                        WindowUtils.cleanItemDraggingWindow();
 | 
			
		||||
                        //rerender inventories
 | 
			
		||||
                        WindowUtils.replaceWindow(WindowStrings.WINDOW_CHARACTER, PlayerInventoryWindow.createPlayerInventoryWindow(Globals.playerEntity));
 | 
			
		||||
                        return false;
 | 
			
		||||
                    }});
 | 
			
		||||
                }
 | 
			
		||||
@ -213,16 +187,4 @@ public class NaturalInventoryPanel {
 | 
			
		||||
        return div;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Destroys the dummy panel
 | 
			
		||||
     */
 | 
			
		||||
    public static void destroyDummyPanel(){
 | 
			
		||||
        if(dummyPanel != null && dummyPanel.getParent() != null){
 | 
			
		||||
            ContainerElement container = (ContainerElement)dummyPanel.getParent();
 | 
			
		||||
            container.removeChild(dummyPanel);
 | 
			
		||||
            dummyPanel.destroy();
 | 
			
		||||
            dummyPanel = null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,17 @@
 | 
			
		||||
package electrosphere.renderer.ui.components;
 | 
			
		||||
 | 
			
		||||
import electrosphere.controls.ControlHandler.ControlsState;
 | 
			
		||||
import electrosphere.engine.Globals;
 | 
			
		||||
import electrosphere.engine.signal.Signal.SignalType;
 | 
			
		||||
import electrosphere.entity.Entity;
 | 
			
		||||
import electrosphere.entity.state.inventory.InventoryUtils;
 | 
			
		||||
import electrosphere.menu.WindowStrings;
 | 
			
		||||
import electrosphere.menu.WindowUtils;
 | 
			
		||||
import electrosphere.renderer.ui.elements.Window;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaAlignment;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaJustification;
 | 
			
		||||
import electrosphere.renderer.ui.elementtypes.NavigableElement.NavigationEventCallback;
 | 
			
		||||
import electrosphere.renderer.ui.events.NavigationEvent;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The player's inventory
 | 
			
		||||
@ -37,14 +42,35 @@ public class PlayerInventoryWindow {
 | 
			
		||||
        rVal.setParentAlignItem(YogaAlignment.Center);
 | 
			
		||||
        rVal.setParentJustifyContent(YogaJustification.Center);
 | 
			
		||||
 | 
			
		||||
        if(InventoryUtils.hasNaturalInventory(entity)){
 | 
			
		||||
            rVal.addChild(NaturalInventoryPanel.createNaturalInventoryPanel(entity));
 | 
			
		||||
        }
 | 
			
		||||
        rVal.setOnNavigationCallback(new NavigationEventCallback() {public boolean execute(NavigationEvent event){
 | 
			
		||||
            WindowUtils.recursiveSetVisible(Globals.elementService.getWindow(WindowStrings.WINDOW_CHARACTER), false);
 | 
			
		||||
            Globals.elementService.unregisterWindow(WindowStrings.WINDOW_CHARACTER);
 | 
			
		||||
            if(Globals.cameraHandler.getTrackPlayerEntity()){
 | 
			
		||||
                Globals.controlHandler.hintUpdateControlState(ControlsState.MAIN_GAME);
 | 
			
		||||
            } else {
 | 
			
		||||
                Globals.controlHandler.hintUpdateControlState(ControlsState.IN_GAME_FREE_CAMERA);
 | 
			
		||||
            }
 | 
			
		||||
            Globals.renderingEngine.getPostProcessingPipeline().setApplyBlur(false);
 | 
			
		||||
            return false;
 | 
			
		||||
        }});
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //
 | 
			
		||||
        //contents
 | 
			
		||||
        //
 | 
			
		||||
 | 
			
		||||
        if(InventoryUtils.hasEquipInventory(entity)){
 | 
			
		||||
            rVal.addChild(EquipmentInventoryPanel.createEquipmentInventoryPanel(entity));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(InventoryUtils.hasNaturalInventory(entity)){
 | 
			
		||||
            rVal.addChild(NaturalInventoryPanel.createNaturalInventoryPanel(entity));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //
 | 
			
		||||
        //Final setup
 | 
			
		||||
        //
 | 
			
		||||
 | 
			
		||||
        Globals.signalSystem.post(SignalType.YOGA_APPLY, rVal);
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
@ -52,7 +52,7 @@ public class Button extends StandardContainerElement implements DrawableElement,
 | 
			
		||||
     */
 | 
			
		||||
    public static Button createButton(String text, ClickableElement.ClickEventCallback callback){
 | 
			
		||||
        Button rVal = new Button();
 | 
			
		||||
        Label rValLabel = new Label(1.0f);
 | 
			
		||||
        Label rValLabel = Label.createLabel(text);
 | 
			
		||||
        rValLabel.setText(text);
 | 
			
		||||
        rVal.addChild(rValLabel);
 | 
			
		||||
        rVal.setOnClick(callback);
 | 
			
		||||
@ -68,7 +68,7 @@ public class Button extends StandardContainerElement implements DrawableElement,
 | 
			
		||||
     */
 | 
			
		||||
    public static Button createButton(String text, Runnable callback){
 | 
			
		||||
        Button rVal = new Button();
 | 
			
		||||
        Label rValLabel = new Label(1.0f);
 | 
			
		||||
        Label rValLabel = Label.createLabel(text);
 | 
			
		||||
        rValLabel.setText(text);
 | 
			
		||||
        rVal.addChild(rValLabel);
 | 
			
		||||
        rVal.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
 | 
			
		||||
 | 
			
		||||
@ -47,6 +47,7 @@ public class Label extends StandardContainerElement implements DrawableElement {
 | 
			
		||||
     * Simplified constructor
 | 
			
		||||
     * @param fontSize the size of the font (default is 1.0f)
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public Label(float fontSize){
 | 
			
		||||
        super();
 | 
			
		||||
        this.font = Globals.fontManager.getFont("default");
 | 
			
		||||
@ -61,6 +62,7 @@ public class Label extends StandardContainerElement implements DrawableElement {
 | 
			
		||||
     * @param y the y position
 | 
			
		||||
     * @param fontSize the font size (default is 1.0f)
 | 
			
		||||
     */
 | 
			
		||||
    @Deprecated
 | 
			
		||||
    public Label(int x, int y, float fontSize){
 | 
			
		||||
        super();
 | 
			
		||||
        this.setPositionX(x);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user