display blank item slot under dragged item panel
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
44b70f4ce6
commit
211389812d
@ -12,11 +12,10 @@
|
||||
+ rearchitecture
|
||||
|
||||
+ fix the vibes
|
||||
Hitstun
|
||||
Ticketed randomizer node for BTs to more heavily weight attacking and waiting
|
||||
|
||||
+ bug fixes
|
||||
Fix empty item slot not showing underneath dragged item
|
||||
Fix grass rendering distance
|
||||
|
||||
+ unreproducible bugs
|
||||
Fix being unable to jump sometimes (usually when pick up sword)
|
||||
|
||||
@ -715,6 +715,8 @@ Fix cursor visuals
|
||||
|
||||
(09/10/2024)
|
||||
Fix jump/fall/land animations being buggy and inconsistent between client/server
|
||||
Remove extraneous println's
|
||||
Fix empty item slot not showing underneath dragged item
|
||||
|
||||
|
||||
# TODO
|
||||
|
||||
@ -83,7 +83,6 @@ public class ServerFallTree implements BehaviorTree {
|
||||
frameCurrent++;
|
||||
} break;
|
||||
}
|
||||
System.out.println(this.isFalling());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -111,7 +110,6 @@ public class ServerFallTree implements BehaviorTree {
|
||||
if(entityActor != null && ServerJumpTree.getServerJumpTree(parent) != null){
|
||||
isPlayingJump = entityActor.isPlayingAnimation(ServerJumpTree.getServerJumpTree(parent).getJumpData().getAnimationJump());
|
||||
}
|
||||
System.out.println(frameCurrent + " " + ServerGravityTree.getServerGravityTree(parent).isActive() + " " + !isPlayingJump);
|
||||
boolean rVal =
|
||||
frameCurrent > MIN_FRAMES_BEFORE_ACTIVATION_SCAN &&
|
||||
ServerGravityTree.getServerGravityTree(parent).isActive() &&
|
||||
|
||||
@ -323,7 +323,7 @@ public class MenuGeneratorsInGame {
|
||||
}});
|
||||
|
||||
//black texture background
|
||||
ImagePanel imagePanel = new ImagePanel(0,0,width,height + 1000,Globals.blackTexture);
|
||||
ImagePanel imagePanel = ImagePanel.createImagePanelAbsolute(0,0,width,height + 1000,Globals.blackTexture);
|
||||
// imagePanel.setWidth(width);
|
||||
// imagePanel.setHeight(height);
|
||||
// imagePanel.setTexture(Globals.assetManager.fetchTexture(Globals.blackTexture));
|
||||
|
||||
@ -32,6 +32,11 @@ 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;
|
||||
@ -82,6 +87,8 @@ public class MenuGeneratorsInventory {
|
||||
}
|
||||
//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));
|
||||
@ -91,6 +98,8 @@ public class MenuGeneratorsInventory {
|
||||
} else {
|
||||
//clear ui
|
||||
WindowUtils.cleanItemDraggingWindow();
|
||||
//dummy panel handling
|
||||
destroyDummyPanel();
|
||||
//re-render inventory
|
||||
WindowUtils.replaceWindow(WindowUtils.getInventoryWindowID(inventory.getId()), MenuGeneratorsInventory.createNaturalInventoryMenu(inventory));
|
||||
}
|
||||
@ -126,12 +135,13 @@ public class MenuGeneratorsInventory {
|
||||
}
|
||||
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 = new ImagePanel(posX,posY,panelWidth,panelHeight,texturePath);
|
||||
panel.setAbsolutePosition(true);
|
||||
ImagePanel panel = ImagePanel.createImagePanelAbsolute(posX,posY,panelWidth,panelHeight,texturePath);
|
||||
if(hasItem == true){
|
||||
int itemId = i;
|
||||
panel.setOnDragStart(new DragEventCallback() {public boolean execute(DragEvent event){
|
||||
@ -141,6 +151,9 @@ public class MenuGeneratorsInventory {
|
||||
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);
|
||||
@ -162,6 +175,8 @@ public class MenuGeneratorsInventory {
|
||||
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;
|
||||
@ -181,6 +196,8 @@ public class MenuGeneratorsInventory {
|
||||
// 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));
|
||||
@ -251,6 +268,8 @@ public class MenuGeneratorsInventory {
|
||||
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));
|
||||
@ -314,27 +333,31 @@ public class MenuGeneratorsInventory {
|
||||
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 = new ImagePanel(posX,posY,panelWidth,panelHeight,texturePath);
|
||||
panel.setAbsolutePosition(true);
|
||||
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){
|
||||
// System.out.println("Drag start");
|
||||
Globals.dragSourceInventory = inventory;
|
||||
Globals.draggedItem = inventory.getItemSlot(finalSlotId);
|
||||
ContainerElement container = (ContainerElement)panel.getParent();
|
||||
container.removeChild(panel);
|
||||
WindowUtils.pushItemIconToItemWindow(panel);
|
||||
//play sound effect
|
||||
if(Globals.virtualAudioSourceManager != null){
|
||||
Globals.virtualAudioSourceManager.createVirtualAudioSource("/Audio/inventoryGrabItem.ogg", VirtualAudioSourceType.UI, false);
|
||||
}
|
||||
return false;
|
||||
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");
|
||||
@ -351,6 +374,8 @@ public class MenuGeneratorsInventory {
|
||||
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;
|
||||
@ -387,6 +412,8 @@ public class MenuGeneratorsInventory {
|
||||
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));
|
||||
@ -441,6 +468,8 @@ public class MenuGeneratorsInventory {
|
||||
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());
|
||||
@ -453,6 +482,8 @@ public class MenuGeneratorsInventory {
|
||||
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;
|
||||
@ -473,4 +504,16 @@ 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;
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -77,30 +77,23 @@ public class ImagePanel extends StandardElement implements DrawableElement, Drag
|
||||
customMat.setTexturePointer(Globals.assetManager.fetchTexture(Globals.blackTexture).getTexturePointer());
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
|
||||
/**
|
||||
* Public constructor used for legacy usage
|
||||
* @param x
|
||||
* @param y
|
||||
* @param width
|
||||
* @param height
|
||||
* @param texturePath
|
||||
* Creates an absolutely positioned image panel
|
||||
* @param x The x position
|
||||
* @param y The y position
|
||||
* @param width The width of the panel
|
||||
* @param height The height of the panel
|
||||
* @param texturePath The texture path to display in the panel
|
||||
*/
|
||||
public ImagePanel(int x, int y, int width, int height, String texturePath){
|
||||
super();
|
||||
this.texturePath = texturePath;
|
||||
texture = Globals.assetManager.fetchTexture(this.texturePath);
|
||||
if(texture != null){
|
||||
customMat.setTexturePointer(texture.getTexturePointer());
|
||||
hasLoadedTexture = true;
|
||||
} else {
|
||||
customMat.setTexturePointer(Globals.assetManager.fetchTexture(Globals.blackTexture).getTexturePointer());
|
||||
}
|
||||
setPositionX(x);
|
||||
setPositionY(y);
|
||||
setWidth(width);
|
||||
setHeight(height);
|
||||
public static ImagePanel createImagePanelAbsolute(int x, int y, int width, int height, String texturePath){
|
||||
ImagePanel rVal = new ImagePanel(texturePath);
|
||||
rVal.setPositionX(x);
|
||||
rVal.setPositionY(y);
|
||||
rVal.setWidth(width);
|
||||
rVal.setHeight(height);
|
||||
rVal.setAbsolutePosition(true);
|
||||
return rVal;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -69,6 +69,7 @@ public class StandardElement implements Element {
|
||||
return absoluteY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAbsolutePosition(boolean useAbsolutePosition){
|
||||
if(useAbsolutePosition){
|
||||
Yoga.YGNodeStyleSetPositionType(yogaNode, Yoga.YGPositionTypeAbsolute);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user