more ui and bugfixes
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
aca8c36732
commit
cdfa594c06
@ -167,8 +167,8 @@ public class FirstPersonTree implements BehaviorTree {
|
|||||||
* @param animation The animation
|
* @param animation The animation
|
||||||
*/
|
*/
|
||||||
public static void conditionallyInterruptAnimation(Entity entity, TreeDataAnimation animation){
|
public static void conditionallyInterruptAnimation(Entity entity, TreeDataAnimation animation){
|
||||||
if(entity != null && FirstPersonTree.hasTree(entity)){
|
if(entity != null && entity == Globals.playerEntity && FirstPersonTree.hasTree(Globals.firstPersonEntity)){
|
||||||
FirstPersonTree.getTree(entity).interruptAnimation(animation);
|
FirstPersonTree.getTree(Globals.firstPersonEntity).interruptAnimation(animation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -319,6 +319,7 @@ public class ClientEquipState implements BehaviorTree {
|
|||||||
Entity equipped = equipMap.remove(pointId);
|
Entity equipped = equipMap.remove(pointId);
|
||||||
if(equipped != null){
|
if(equipped != null){
|
||||||
boolean targetHasWhitelist = ItemUtils.hasEquipList(equipped);
|
boolean targetHasWhitelist = ItemUtils.hasEquipList(equipped);
|
||||||
|
EquipPoint point = this.getEquipPoint(pointId);
|
||||||
|
|
||||||
//
|
//
|
||||||
//visual transforms
|
//visual transforms
|
||||||
@ -346,6 +347,24 @@ public class ClientEquipState implements BehaviorTree {
|
|||||||
AttachUtils.clientDetatchEntityFromEntityAtBone(parent, equipped);
|
AttachUtils.clientDetatchEntityFromEntityAtBone(parent, equipped);
|
||||||
EntityUtils.cleanUpEntity(equipped);
|
EntityUtils.cleanUpEntity(equipped);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//interrupt animation
|
||||||
|
if(point != null){
|
||||||
|
Actor thirdPersonActor = EntityUtils.getActor(parent);
|
||||||
|
if(point.getEquippedAnimation() != null){
|
||||||
|
TreeDataAnimation animation = point.getEquippedAnimation();
|
||||||
|
//play third person
|
||||||
|
if(thirdPersonActor.isPlayingAnimation() && thirdPersonActor.isPlayingAnimation(animation)){
|
||||||
|
if(animation != null){
|
||||||
|
thirdPersonActor.interruptAnimation(animation,true);
|
||||||
|
}
|
||||||
|
thirdPersonActor.incrementAnimationTime(0.0001);
|
||||||
|
}
|
||||||
|
|
||||||
|
//play first person
|
||||||
|
FirstPersonTree.conditionallyInterruptAnimation(parent, animation);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -336,6 +336,7 @@ public class ServerEquipState implements BehaviorTree {
|
|||||||
Entity equipped = equipMap.remove(pointId);
|
Entity equipped = equipMap.remove(pointId);
|
||||||
if(equipped != null){
|
if(equipped != null){
|
||||||
boolean targetHasWhitelist = ItemUtils.hasEquipList(equipped);
|
boolean targetHasWhitelist = ItemUtils.hasEquipList(equipped);
|
||||||
|
EquipPoint point = this.getEquipPoint(pointId);
|
||||||
|
|
||||||
//
|
//
|
||||||
//Visual transforms
|
//Visual transforms
|
||||||
@ -377,6 +378,21 @@ public class ServerEquipState implements BehaviorTree {
|
|||||||
EntityUtils.cleanUpEntity(equipped);
|
EntityUtils.cleanUpEntity(equipped);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//interrupt animation
|
||||||
|
if(point != null){
|
||||||
|
PoseActor thirdPersonActor = EntityUtils.getPoseActor(parent);
|
||||||
|
if(point.getEquippedAnimation() != null){
|
||||||
|
TreeDataAnimation animation = point.getEquippedAnimation();
|
||||||
|
//play third person
|
||||||
|
if(thirdPersonActor.isPlayingAnimation() && thirdPersonActor.isPlayingAnimation(animation)){
|
||||||
|
if(animation != null){
|
||||||
|
thirdPersonActor.interruptAnimation(animation,true);
|
||||||
|
}
|
||||||
|
thirdPersonActor.incrementAnimationTime(0.0001);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
//update block state based on what we have equipped
|
//update block state based on what we have equipped
|
||||||
this.updateBlockVariant();
|
this.updateBlockVariant();
|
||||||
|
|||||||
@ -98,10 +98,10 @@ public class ClientInventoryState implements BehaviorTree {
|
|||||||
//destroy the in-world manifestation of said item
|
//destroy the in-world manifestation of said item
|
||||||
EntityUtils.cleanUpEntity(entityInSlot);
|
EntityUtils.cleanUpEntity(entityInSlot);
|
||||||
}
|
}
|
||||||
}
|
} break;
|
||||||
break;
|
|
||||||
case CLIENTREQUESTEQUIPITEM:
|
case CLIENTREQUESTEQUIPITEM:
|
||||||
case CLIENTREQUESTUNEQUIPITEM:
|
case CLIENTREQUESTUNEQUIPITEM:
|
||||||
|
case CLIENTREQUESTPERFORMITEMACTION:
|
||||||
case SERVERCOMMANDEQUIPITEM:
|
case SERVERCOMMANDEQUIPITEM:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,7 +48,15 @@ public class RelationalInventoryState {
|
|||||||
return items.get(slot);
|
return items.get(slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the item slot for a given item
|
||||||
|
* @param item The item
|
||||||
|
* @return The item slot if it is contained within this inventory, null otherwise
|
||||||
|
*/
|
||||||
public String getItemSlot(Entity item){
|
public String getItemSlot(Entity item){
|
||||||
|
if(item == null){
|
||||||
|
LoggerInterface.loggerEngine.ERROR(new IllegalArgumentException("Trying to get the item slot of null!"));
|
||||||
|
}
|
||||||
if(items.containsValue(item)){
|
if(items.containsValue(item)){
|
||||||
for(String slot : items.keySet()){
|
for(String slot : items.keySet()){
|
||||||
if(items.get(slot) == item){
|
if(items.get(slot) == item){
|
||||||
|
|||||||
@ -531,6 +531,10 @@ public class AttachUtils {
|
|||||||
if(parent.containsKey(EntityDataStrings.ATTACH_CHILDREN_LIST)){
|
if(parent.containsKey(EntityDataStrings.ATTACH_CHILDREN_LIST)){
|
||||||
getChildrenList(parent).remove(toAttach);
|
getChildrenList(parent).remove(toAttach);
|
||||||
}
|
}
|
||||||
|
//special case handling for view model
|
||||||
|
if(parent == Globals.playerEntity && getChildrenList(Globals.firstPersonEntity) != null){
|
||||||
|
getChildrenList(Globals.firstPersonEntity).remove(toAttach);
|
||||||
|
}
|
||||||
return bone;
|
return bone;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -283,14 +283,23 @@ public class MenuGeneratorsInventory {
|
|||||||
for(int i = 0; i < numSlots; i++){
|
for(int i = 0; i < numSlots; i++){
|
||||||
String texturePath = "Textures/icons/itemIconEmpty.png";
|
String texturePath = "Textures/icons/itemIconEmpty.png";
|
||||||
boolean hasItem = false;
|
boolean hasItem = false;
|
||||||
equipPoint = inventory.getEquipPointFromSlot(slots.get(i));
|
String slotId = slots.get(i);
|
||||||
|
equipPoint = inventory.getEquipPointFromSlot(slotId);
|
||||||
if(!equipPoint.isCombinedPoint()){
|
if(!equipPoint.isCombinedPoint()){
|
||||||
if(inventory.getItemSlot(slots.get(i)) != null){
|
if(inventory.getItemSlot(slotId) != null){
|
||||||
Entity currentItem = inventory.getItemSlot(slots.get(i));
|
Entity currentItem = inventory.getItemSlot(slotId);
|
||||||
//get texture path from item
|
//get texture path from item
|
||||||
texturePath = ItemUtils.getItemIcon(currentItem);
|
texturePath = ItemUtils.getItemIcon(currentItem);
|
||||||
//flag that this isn't an empty slot
|
//flag that this isn't an empty slot
|
||||||
hasItem = true;
|
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)){
|
if(!Globals.assetManager.hasLoadedTexture(texturePath)){
|
||||||
Globals.assetManager.addTexturePathtoQueue(texturePath);
|
Globals.assetManager.addTexturePathtoQueue(texturePath);
|
||||||
@ -307,11 +316,13 @@ public class MenuGeneratorsInventory {
|
|||||||
ImagePanel panel = new ImagePanel(posX,posY,panelWidth,panelHeight,texturePath);
|
ImagePanel panel = new ImagePanel(posX,posY,panelWidth,panelHeight,texturePath);
|
||||||
panel.setAbsolutePosition(true);
|
panel.setAbsolutePosition(true);
|
||||||
if(hasItem == true){
|
if(hasItem == true){
|
||||||
int itemId = i;
|
//literally just here to get around finality of variable within callback
|
||||||
panel.setOnDragStart(new DragEventCallback() {public boolean execute(DragEvent event){
|
String finalSlotId = slotId;
|
||||||
|
panel.setOnDragStart(new DragEventCallback() {
|
||||||
|
public boolean execute(DragEvent event){
|
||||||
// System.out.println("Drag start");
|
// System.out.println("Drag start");
|
||||||
Globals.dragSourceInventory = inventory;
|
Globals.dragSourceInventory = inventory;
|
||||||
Globals.draggedItem = inventory.getItemSlot(slots.get(itemId));
|
Globals.draggedItem = inventory.getItemSlot(finalSlotId);
|
||||||
ContainerElement container = (ContainerElement)panel.getParent();
|
ContainerElement container = (ContainerElement)panel.getParent();
|
||||||
container.removeChild(panel);
|
container.removeChild(panel);
|
||||||
WindowUtils.pushItemIconToItemWindow(panel);
|
WindowUtils.pushItemIconToItemWindow(panel);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user