Merge remote-tracking branch 'origin/inventory' into feature/farming_visuals

# Conflicts:
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B01-Idle-Harke/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/B02-Walk-Harke/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/D01-Idle-Harke/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F01-Idle-Harke/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/F02-Walk-Harke/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S01-Idle-Harke/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Gießkanne/0020.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0001.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0002.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0003.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0004.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0005.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0006.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0007.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0008.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0009.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0010.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0011.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0012.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0013.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0014.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0015.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0016.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0017.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0018.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0019.png.import
#	art/animation/Vesna2D/Vesna Anims Tools/S02-Walk-Harke/0020.png.import
#	prefabs/UI/Inventory/Inventory.tscn
#	scenes/Babushka_scene_farm_outside_2d.tscn
remotes/checkIfPRContentChanged-1749884192368007736/inventory
kziolkowski 8 months ago
commit 917e6a5f7e

3
.gitignore vendored

@ -7,3 +7,6 @@
**/*.tmp **/*.tmp
**/*.translation **/*.translation
**/*~lock~ **/*~lock~
# override config can be used by developers to override the settings without pushing changes to the repository
override.cfg

@ -2,5 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading> <EnableDynamicLoading>true</EnableDynamicLoading>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

@ -0,0 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Description/@EntryValue">Godot Signal</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Text/@EntryValue">[Signal]
public delegate void $SignalName$EventHandler($END$);</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=0B2502BD29F5EC4798EEFD2950AA7E06/Field/=SignalName/Expression/@EntryValue">suggestVariableName()</s:String></wpf:ResourceDictionary>

@ -4,11 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://b3kyrsoobmkhp" uid="uid://b3kyrsoobmkhp"
valid=false path="res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"
[deps] [deps]
source_file="res://art/mockups/3d/best_house_blender.blend" source_file="res://art/mockups/3d/best_house_blender.blend"
dest_files=["res://.godot/imported/best_house_blender.blend-ac89c74aef2f275bdf4b4baadee17c0c.scn"]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://3ln8aleyxgp1"
path="res://.godot/imported/UI_bag_export_01.png-849f65e7f0ae9838cbd0b40d7db0adbf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ui/UI/UI_bag_export_01.png"
dest_files=["res://.godot/imported/UI_bag_export_01.png-849f65e7f0ae9838cbd0b40d7db0adbf.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcidjcsqk12p1"
path="res://.godot/imported/UI_bag_export_02.png-1d79b1aa82b484e614d86097168b3404.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://art/ui/UI/UI_bag_export_02.png"
dest_files=["res://.godot/imported/UI_bag_export_02.png-1d79b1aa82b484e614d86097168b3404.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

@ -1,20 +1,32 @@
[gd_scene load_steps=5 format=3 uid="uid://cgjc4wurbgimy"] [gd_scene load_steps=8 format=3 uid="uid://cgjc4wurbgimy"]
[ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"] [ext_resource type="Script" uid="uid://hg7jay2kt441" path="res://scripts/CSharp/Common/Inventory/InventoryUi.cs" id="1_6wusm"]
[ext_resource type="Script" uid="uid://b2jhdxcrhtm2d" path="res://scripts/CSharp/Common/Inventory/InventoryTestScript.cs" id="3_exrk4"] [ext_resource type="Script" uid="uid://b2jhdxcrhtm2d" path="res://scripts/CSharp/Common/Inventory/InventoryTestScript.cs" id="3_exrk4"]
[ext_resource type="Texture2D" uid="uid://3ln8aleyxgp1" path="res://art/ui/UI/UI_bag_export_01.png" id="3_vvo7l"]
[ext_resource type="Resource" uid="uid://datee0flk1e84" path="res://resources/items/pickaxe.tres" id="4_5fdxq"] [ext_resource type="Resource" uid="uid://datee0flk1e84" path="res://resources/items/pickaxe.tres" id="4_5fdxq"]
[ext_resource type="Texture2D" uid="uid://dcidjcsqk12p1" path="res://art/ui/UI/UI_bag_export_02.png" id="4_df8i8"]
[ext_resource type="Texture2D" uid="uid://c7wqla0mbu3np" path="res://art/ui/babushka_ui_tmp_inventory_select.png" id="4_tiss4"] [ext_resource type="Texture2D" uid="uid://c7wqla0mbu3np" path="res://art/ui/babushka_ui_tmp_inventory_select.png" id="4_tiss4"]
[ext_resource type="PackedScene" uid="uid://c0kmdjeqkqrwv" path="res://prefabs/UI/Inventory/Slot.tscn" id="5_u7kje"]
[node name="Inventory" type="Control"] [node name="CanvasLayer" type="CanvasLayer"]
layer = 90
[node name="Inventory" type="Control" parent="."]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 174.0
offset_top = 191.0
offset_right = 174.0
offset_bottom = 191.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
scale = Vector2(0.7, 0.7)
script = ExtResource("1_6wusm") script = ExtResource("1_6wusm")
_inventoryOpenedOffset = -700.0
[node name="SlotsContainer" type="Control" parent="."] [node name="SlotsContainer" type="Control" parent="Inventory"]
custom_minimum_size = Vector2(500, 0) custom_minimum_size = Vector2(500, 0)
layout_mode = 1 layout_mode = 1
anchors_preset = 13 anchors_preset = 13
@ -24,34 +36,23 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="Slots" type="GridContainer" parent="SlotsContainer"] [node name="SlotSelectContainer" type="Control" parent="Inventory/SlotsContainer"]
custom_minimum_size = Vector2(1000, 200) custom_minimum_size = Vector2(900, 100)
layout_mode = 1
anchors_preset = -1
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 0
theme_override_constants/h_separation = 0
theme_override_constants/v_separation = 0
columns = 10
[node name="SlotSelectContainer" type="Control" parent="SlotsContainer"]
custom_minimum_size = Vector2(1000, 100)
layout_mode = 1 layout_mode = 1
anchors_preset = 7 anchors_preset = 7
anchor_left = 0.5 anchor_left = 0.5
anchor_top = 1.0 anchor_top = 1.0
anchor_right = 0.5 anchor_right = 0.5
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = -450.0
offset_top = -115.0
offset_right = 450.0
offset_bottom = -15.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 0 grow_vertical = 0
[node name="Selector" type="TextureRect" parent="SlotsContainer/SlotSelectContainer"] [node name="Selector" type="TextureRect" parent="Inventory/SlotsContainer/SlotSelectContainer"]
visible = false z_index = 10
custom_minimum_size = Vector2(100, 100) custom_minimum_size = Vector2(100, 100)
layout_mode = 0 layout_mode = 0
offset_left = 1.0 offset_left = 1.0
@ -60,11 +61,316 @@ offset_bottom = 100.0
texture = ExtResource("4_tiss4") texture = ExtResource("4_tiss4")
expand_mode = 1 expand_mode = 1
[node name="InventoryTester" type="Node" parent="."] [node name="SlotsMover" type="Control" parent="Inventory/SlotsContainer"]
custom_minimum_size = Vector2(900, 610)
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -200.0
offset_top = -611.0
offset_right = 200.0
offset_bottom = -1.0
grow_horizontal = 2
grow_vertical = 0
[node name="BackgroundContainer" type="Control" parent="Inventory/SlotsContainer/SlotsMover"]
layout_mode = 1
anchors_preset = 0
offset_left = 5.0
offset_top = 384.0
offset_right = 901.0
offset_bottom = 1230.0
mouse_filter = 2
[node name="TextureRect" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/BackgroundContainer"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -305.0
offset_right = 303.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("3_vvo7l")
expand_mode = 3
[node name="TextureRect2" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/BackgroundContainer"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("3_vvo7l")
expand_mode = 3
flip_h = true
[node name="TextureRect3" type="TextureRect" parent="Inventory/SlotsContainer/SlotsMover/BackgroundContainer"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("4_df8i8")
expand_mode = 3
flip_h = true
[node name="Slots" type="Control" parent="Inventory/SlotsContainer/SlotsMover"]
custom_minimum_size = Vector2(900, 610)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 496.0
offset_bottom = 496.0
grow_horizontal = 2
grow_vertical = 2
[node name="Slot" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
[node name="Slot2" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 100.0
offset_right = 200.0
[node name="Slot3" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 201.0
offset_right = 301.0
[node name="Slot4" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 301.0
offset_right = 401.0
[node name="Slot5" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 401.0
offset_right = 501.0
[node name="Slot6" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 501.0
offset_right = 601.0
[node name="Slot7" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 601.0
offset_right = 701.0
[node name="Slot8" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 702.0
offset_right = 802.0
[node name="Slot9" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 802.0
offset_right = 902.0
[node name="Slot10" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 101.0
offset_top = 212.0
offset_right = 201.0
offset_bottom = 312.0
[node name="Slot11" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 201.0
offset_top = 212.0
offset_right = 301.0
offset_bottom = 312.0
[node name="Slot12" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 301.0
offset_top = 212.0
offset_right = 401.0
offset_bottom = 312.0
[node name="Slot13" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 401.0
offset_top = 212.0
offset_right = 501.0
offset_bottom = 312.0
[node name="Slot14" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 501.0
offset_top = 212.0
offset_right = 601.0
offset_bottom = 312.0
[node name="Slot15" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 602.0
offset_top = 212.0
offset_right = 702.0
offset_bottom = 312.0
[node name="Slot16" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 702.0
offset_top = 212.0
offset_right = 802.0
offset_bottom = 312.0
[node name="Slot17" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 102.0
offset_top = 312.0
offset_right = 202.0
offset_bottom = 412.0
[node name="Slot18" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 202.0
offset_top = 312.0
offset_right = 302.0
offset_bottom = 412.0
[node name="Slot19" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 302.0
offset_top = 312.0
offset_right = 402.0
offset_bottom = 412.0
[node name="Slot20" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 402.0
offset_top = 312.0
offset_right = 502.0
offset_bottom = 412.0
[node name="Slot21" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 502.0
offset_top = 312.0
offset_right = 602.0
offset_bottom = 412.0
[node name="Slot22" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 603.0
offset_top = 312.0
offset_right = 703.0
offset_bottom = 412.0
[node name="Slot23" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 703.0
offset_top = 312.0
offset_right = 803.0
offset_bottom = 412.0
[node name="Slot24" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 102.0
offset_top = 412.0
offset_right = 202.0
offset_bottom = 512.0
[node name="Slot25" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 202.0
offset_top = 412.0
offset_right = 302.0
offset_bottom = 512.0
[node name="Slot26" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 302.0
offset_top = 412.0
offset_right = 402.0
offset_bottom = 512.0
[node name="Slot27" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 402.0
offset_top = 412.0
offset_right = 502.0
offset_bottom = 512.0
[node name="Slot28" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 502.0
offset_top = 412.0
offset_right = 602.0
offset_bottom = 512.0
[node name="Slot29" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 603.0
offset_top = 412.0
offset_right = 703.0
offset_bottom = 512.0
[node name="Slot30" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 703.0
offset_top = 412.0
offset_right = 803.0
offset_bottom = 512.0
[node name="Slot31" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 102.0
offset_top = 512.0
offset_right = 202.0
offset_bottom = 612.0
[node name="Slot32" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 202.0
offset_top = 512.0
offset_right = 302.0
offset_bottom = 612.0
[node name="Slot33" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 302.0
offset_top = 512.0
offset_right = 402.0
offset_bottom = 612.0
[node name="Slot34" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 402.0
offset_top = 512.0
offset_right = 502.0
offset_bottom = 612.0
[node name="Slot35" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 502.0
offset_top = 512.0
offset_right = 602.0
offset_bottom = 612.0
[node name="Slot36" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 603.0
offset_top = 512.0
offset_right = 703.0
offset_bottom = 612.0
[node name="Slot37" parent="Inventory/SlotsContainer/SlotsMover/Slots" instance=ExtResource("5_u7kje")]
layout_mode = 1
offset_left = 703.0
offset_top = 512.0
offset_right = 803.0
offset_bottom = 612.0
[node name="InventoryTester" type="Node" parent="Inventory"]
script = ExtResource("3_exrk4") script = ExtResource("3_exrk4")
_testItemToCreate = ExtResource("4_5fdxq") _testItemToCreate = ExtResource("4_5fdxq")
[node name="BabushkaUiTmpInventorySelect" type="Sprite2D" parent="."]
visible = false
position = Vector2(-648, 1020)
texture = ExtResource("4_tiss4")

@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://c0kmdjeqkqrwv"] [gd_scene load_steps=4 format=3 uid="uid://c0kmdjeqkqrwv"]
[ext_resource type="Script" uid="uid://bh6wcyxh1f0cv" path="res://scripts/CSharp/Common/Inventory/SlotUi.cs" id="1_au0l0"] [ext_resource type="Script" uid="uid://bh6wcyxh1f0cv" path="res://scripts/CSharp/Common/Inventory/SlotUi.cs" id="1_au0l0"]
[ext_resource type="Texture2D" uid="uid://c2dbd0q02x2h" path="res://art/ui/babushka_ui_inventory_slot.png" id="2_7emux"] [ext_resource type="Texture2D" uid="uid://0p52bm8b1nrl" path="res://art/ui/UI/inventory_standard.png" id="2_7emux"]
[sub_resource type="LabelSettings" id="LabelSettings_7emux"] [sub_resource type="LabelSettings" id="LabelSettings_7emux"]
font_size = 15 font_size = 15
@ -10,12 +10,9 @@ font_color = Color(0.203922, 1, 1, 1)
[node name="Slot" type="Control"] [node name="Slot" type="Control"]
custom_minimum_size = Vector2(100, 100) custom_minimum_size = Vector2(100, 100)
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 0
anchor_right = 1.0 offset_right = 100.0
anchor_bottom = 1.0 offset_bottom = 100.0
offset_bottom = 2.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_au0l0") script = ExtResource("1_au0l0")
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
@ -23,6 +20,10 @@ layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_left = 3.0
offset_top = 3.0
offset_right = -3.0
offset_bottom = -3.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
texture = ExtResource("2_7emux") texture = ExtResource("2_7emux")
@ -45,18 +46,15 @@ vertical_alignment = 1
layout_mode = 1 layout_mode = 1
anchors_preset = -1 anchors_preset = -1
anchor_left = 1.0 anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 offset_left = -50.0
offset_left = -409.0 offset_top = 9.0
offset_top = -329.0
offset_right = -10.0 offset_right = -10.0
offset_bottom = -10.0 offset_bottom = 49.0
grow_horizontal = 0 grow_horizontal = 0
grow_vertical = 0 grow_vertical = 0
theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_colors/font_color = Color(0, 0, 0, 1)
text = "999" text = "999"
horizontal_alignment = 2 horizontal_alignment = 2
vertical_alignment = 2
[connection signal="gui_input" from="." to="." method="_on_gui_input"] [connection signal="gui_input" from="." to="." method="_on_gui_input"]

@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="Babushka" config/name="Babushka"
run/main_scene="uid://gigb28qk8t12" run/main_scene="uid://dee2hgv85mdak"
config/features=PackedStringArray("4.4", "C#", "Forward Plus") config/features=PackedStringArray("4.4", "C#", "Forward Plus")
config/icon="uid://b2smanpdo1y5e" config/icon="uid://b2smanpdo1y5e"
@ -69,6 +69,8 @@ text/autopauses={}
[display] [display]
window/size/always_on_top=true window/size/always_on_top=true
window/stretch/mode="viewport"
window/stretch/aspect="keep_height"
[dotnet] [dotnet]

@ -6,4 +6,5 @@
script = ExtResource("1_07aya") script = ExtResource("1_07aya")
name = "Pick Axe" name = "Pick Axe"
color = Color(0.589014, 0.823353, 0.998475, 1) color = Color(0.589014, 0.823353, 0.998475, 1)
maxStack = 1
metadata/_custom_type_script = "uid://cbskymrxs6ksu" metadata/_custom_type_script = "uid://cbskymrxs6ksu"

@ -1,13 +1,27 @@
#nullable enable using System;
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.Inventory; namespace Babushka.scripts.CSharp.Common.Inventory;
public partial class InventoryManager : Node public partial class InventoryManager : Node
{ {
public static InventoryManager Instance { get; private set; } [Signal]
public delegate void SlotIndexChangedEventHandler(int newIndex);
public InventoryInstance playerInventory; public static InventoryManager Instance { get; private set; } = null!;
public int CurrentSelectedSlotIndex
{
get => _currentSelectedSlotIndex;
set
{
_currentSelectedSlotIndex = value;
EmitSignalSlotIndexChanged(_currentSelectedSlotIndex);
}
}
public InventoryInstance playerInventory = new InventoryInstance();
private int _currentSelectedSlotIndex = 0;
public override void _EnterTree() public override void _EnterTree()
{ {
@ -16,8 +30,7 @@ public partial class InventoryManager : Node
public override void _Ready() public override void _Ready()
{ {
playerInventory = new InventoryInstance(); playerInventory.SlotAmount = 37;
playerInventory.SlotAmount = 30;
} }
public InventoryActionResult CreateItem( public InventoryActionResult CreateItem(
@ -68,4 +81,14 @@ public partial class InventoryManager : Node
{ {
return playerInventory.AddItem(itemInstance); return playerInventory.AddItem(itemInstance);
} }
public InventorySlot GetCurrentSelectedSlot()
{
if (CurrentSelectedSlotIndex < 0 || CurrentSelectedSlotIndex > 8)
throw new ArgumentOutOfRangeException(
nameof(CurrentSelectedSlotIndex),
"currentInventoryBarIndex must be between 0 and 8 (inclusively)");
return playerInventory.Slots[CurrentSelectedSlotIndex];
}
} }

@ -1,28 +1,34 @@
#nullable enable
using Godot; using Godot;
namespace Babushka.scripts.CSharp.Common.Inventory; namespace Babushka.scripts.CSharp.Common.Inventory;
public partial class InventoryUi : Control public partial class InventoryUi : Control
{ {
private GridContainer _slots; private Control _slots;
private Control _slotsMover;
private InventoryInstance _playerInventory; private InventoryInstance _playerInventory;
private Control _slotSelect; private Control _slotSelect;
private int? _slotOnMouse; private int? _slotOnMouse;
private int _selectedSlot = 0;
private bool _inventoryExtended = false; private bool _inventoryExtended = false;
private Tween? _inventoryExtensionTween; private Tween? _inventoryExtensionTween;
[Export]
private float _inventoryClosedOffset = 0f;
[Export]
private float _inventoryOpenedOffset = 200f;
public override void _Ready() public override void _Ready()
{ {
GD.Print("Ready inventory ui"); GD.Print("Ready inventory ui");
_slots = GetNode<GridContainer>("SlotsContainer/Slots"); _slots = GetNode<Control>("SlotsContainer/SlotsMover/Slots");
_slotsMover = GetNode<Control>("SlotsContainer/SlotsMover");
_playerInventory = InventoryManager.Instance.playerInventory; _playerInventory = InventoryManager.Instance.playerInventory;
_slotSelect = GetNode<Control>("SlotsContainer/SlotSelectContainer/Selector"); _slotSelect = GetNode<Control>("SlotsContainer/SlotSelectContainer/Selector");
PopulateSlots(); //PopulateSlots();
SubscribeSlots();
SetSlotContent(); SetSlotContent();
SetSlotSelectPosition(); SetSlotSelectPosition();
InventoryManager.Instance.playerInventory.InventoryContentsChanged += SetSlotContent; InventoryManager.Instance.playerInventory.InventoryContentsChanged += SetSlotContent;
@ -54,7 +60,7 @@ public partial class InventoryUi : Control
private void SetSlotSelectPosition() private void SetSlotSelectPosition()
{ {
_slotSelect.Position = new Vector2(_selectedSlot * 100, 0); _slotSelect.Position = new Vector2(InventoryManager.Instance.CurrentSelectedSlotIndex * 100, 0);
} }
private void PopulateSlots() private void PopulateSlots()
@ -69,6 +75,17 @@ public partial class InventoryUi : Control
} }
} }
private void SubscribeSlots()
{
for (var index = 0; index < _playerInventory.Slots.Count; index++)
{
var slotInstance = _slots.GetChild<SlotUi>(index);
slotInstance.index = index;
slotInstance.Clicked += SlotClicked;
_slots.AddChild(slotInstance);
}
}
private void UnsubscribeSlots() private void UnsubscribeSlots()
{ {
for (var index = 0; index < _playerInventory.Slots.Count; index++) for (var index = 0; index < _playerInventory.Slots.Count; index++)
@ -108,17 +125,17 @@ public partial class InventoryUi : Control
if (Input.IsActionJustPressed("ui_inventory_disadvance")) if (Input.IsActionJustPressed("ui_inventory_disadvance"))
{ {
_selectedSlot++; InventoryManager.Instance.CurrentSelectedSlotIndex++;
if (_selectedSlot > 9) if (InventoryManager.Instance.CurrentSelectedSlotIndex > 8)
_selectedSlot = 0; InventoryManager.Instance.CurrentSelectedSlotIndex = 0;
SetSlotSelectPosition(); SetSlotSelectPosition();
} }
if (Input.IsActionJustPressed("ui_inventory_advance")) if (Input.IsActionJustPressed("ui_inventory_advance"))
{ {
_selectedSlot--; InventoryManager.Instance.CurrentSelectedSlotIndex--;
if (_selectedSlot < 0) if (InventoryManager.Instance.CurrentSelectedSlotIndex < 0)
_selectedSlot = 9; InventoryManager.Instance.CurrentSelectedSlotIndex = 8;
SetSlotSelectPosition(); SetSlotSelectPosition();
} }
} }
@ -134,7 +151,7 @@ public partial class InventoryUi : Control
_inventoryExtensionTween = GetTree().CreateTween(); _inventoryExtensionTween = GetTree().CreateTween();
_slotSelect.Hide(); _slotSelect.Hide();
_inventoryExtensionTween _inventoryExtensionTween
.TweenProperty(_slots, "offset_bottom", -100, 0.4) .TweenProperty(_slotsMover, "offset_bottom", _inventoryOpenedOffset, 0.4)
.SetTrans(Tween.TransitionType.Quad) .SetTrans(Tween.TransitionType.Quad)
.SetEase(Tween.EaseType.Out); .SetEase(Tween.EaseType.Out);
} }
@ -144,7 +161,7 @@ public partial class InventoryUi : Control
_inventoryExtensionTween = GetTree().CreateTween(); _inventoryExtensionTween = GetTree().CreateTween();
_slotSelect.Show(); _slotSelect.Show();
_inventoryExtensionTween _inventoryExtensionTween
.TweenProperty(_slots, "offset_bottom", 200, 0.4) .TweenProperty(_slotsMover, "offset_bottom", _inventoryClosedOffset, 0.4)
.SetTrans(Tween.TransitionType.Quad) .SetTrans(Tween.TransitionType.Quad)
.SetEase(Tween.EaseType.Out); .SetEase(Tween.EaseType.Out);

Loading…
Cancel
Save