Plate carrier
This commit is contained in:
@@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_quartz_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_iron_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_netherite_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_redstone_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.4
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_copper_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_gold_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_emerald_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.7
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_diamond_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.8
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_lapis_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 0.9
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model": "acesbs:item/sovs_plate_carrier_amethyst_trim",
|
||||||
|
"predicate": {
|
||||||
|
"trim_type": 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_amethyst"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_copper"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_diamond"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_emerald"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_gold"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_iron"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_lapis"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_netherite"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_quartz"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "acesbs:item/sovs_plate_carrier",
|
||||||
|
"layer1": "minecraft:trims/items/chestplate_trim_redstone"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
"acesbs:prisma_steel_chestplate",
|
"acesbs:prisma_steel_chestplate",
|
||||||
"acesbs:prisma_steel_leggings",
|
"acesbs:prisma_steel_leggings",
|
||||||
"acesbs:prisma_steel_boots",
|
"acesbs:prisma_steel_boots",
|
||||||
"acesbs:berserkers_pauldron"
|
"acesbs:berserkers_pauldron",
|
||||||
|
"acesbs:wildfire_boots",
|
||||||
|
"acesbs:sovs_plate_carrier"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ Items
|
|||||||
|
|
||||||
Armor
|
Armor
|
||||||
X Beserker Pauldron (Special: Skeleton hurt sound)
|
X Beserker Pauldron (Special: Skeleton hurt sound)
|
||||||
- Wildfire Boots (Special: Rainbow ember)
|
X Wildfire Boots (Special: Rainbow ember)
|
||||||
- Fireskip Boots (Infernal Fire effect on water)
|
- Fireskip Boots (Infernal Fire effect on water)
|
||||||
- Sov's Plate Carrier
|
- Sov's Plate Carrier
|
||||||
- (Headlamp Armors using Everburn Gold)
|
- (Headlamp Armors using Everburn Gold)
|
||||||
|
|||||||
@@ -48,7 +48,9 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
|
|||||||
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
|
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
|
||||||
.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS)
|
.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS)
|
||||||
.add(PrismaSteelItems.PRISMA_STEEL_BOOTS)
|
.add(PrismaSteelItems.PRISMA_STEEL_BOOTS)
|
||||||
.add(ModItems.BERSERKERS_PAULDRON);
|
.add(ModItems.BERSERKERS_PAULDRON)
|
||||||
|
.add(ModItems.WILDFIRE_BOOTS)
|
||||||
|
.add(ModItems.SOVS_PLATE_CARRIER);
|
||||||
getOrCreateTagBuilder(ItemTags.TRIM_MATERIALS)
|
getOrCreateTagBuilder(ItemTags.TRIM_MATERIALS)
|
||||||
.add(PrismaSteelItems.PRISMA_STEEL);
|
.add(PrismaSteelItems.PRISMA_STEEL);
|
||||||
getOrCreateTagBuilder(ItemTags.TRIM_TEMPLATES)
|
getOrCreateTagBuilder(ItemTags.TRIM_TEMPLATES)
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ public class ModModelProvider extends FabricModelProvider {
|
|||||||
|
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.BERSERKERS_PAULDRON);
|
itemModelGenerator.registerArmor((ArmorItem) ModItems.BERSERKERS_PAULDRON);
|
||||||
itemModelGenerator.registerArmor((ArmorItem) ModItems.WILDFIRE_BOOTS);
|
itemModelGenerator.registerArmor((ArmorItem) ModItems.WILDFIRE_BOOTS);
|
||||||
|
itemModelGenerator.registerArmor((ArmorItem) ModItems.SOVS_PLATE_CARRIER);
|
||||||
|
|
||||||
itemModelGenerator.register(ModItems.FREN_SPAWN_EGG,
|
itemModelGenerator.register(ModItems.FREN_SPAWN_EGG,
|
||||||
new Model(Optional.of(Identifier.of("item/template_spawn_egg")), Optional.empty()));
|
new Model(Optional.of(Identifier.of("item/template_spawn_egg")), Optional.empty()));
|
||||||
|
|||||||
@@ -35,9 +35,19 @@ public class ModArmorMaterials {
|
|||||||
map.put(ArmorItem.Type.CHESTPLATE, 8);
|
map.put(ArmorItem.Type.CHESTPLATE, 8);
|
||||||
map.put(ArmorItem.Type.HELMET, 3);
|
map.put(ArmorItem.Type.HELMET, 3);
|
||||||
map.put(ArmorItem.Type.BODY, 11);
|
map.put(ArmorItem.Type.BODY, 11);
|
||||||
}), 20, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, () -> Ingredient.ofItems(ModItems.INFERNAL_ASHES),
|
}), 20, SoundEvents.ITEM_ARMOR_EQUIP_LEATHER, () -> Ingredient.ofItems(ModItems.INFERNAL_ASHES),
|
||||||
List.of(new ArmorMaterial.Layer(Identifier.of(AcesBS.MOD_ID, "wildfire"))), 0, 0));
|
List.of(new ArmorMaterial.Layer(Identifier.of(AcesBS.MOD_ID, "wildfire"))), 0, 0));
|
||||||
|
|
||||||
|
public static final RegistryEntry<ArmorMaterial> PLATES = registerArmorMaterial("plates",
|
||||||
|
() -> new ArmorMaterial(Util.make(new EnumMap<>(ArmorItem.Type.class), map -> {
|
||||||
|
map.put(ArmorItem.Type.BOOTS, 0);
|
||||||
|
map.put(ArmorItem.Type.LEGGINGS, 0);
|
||||||
|
map.put(ArmorItem.Type.CHESTPLATE, 0);
|
||||||
|
map.put(ArmorItem.Type.HELMET, 0);
|
||||||
|
map.put(ArmorItem.Type.BODY, 0);
|
||||||
|
}), 20, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, () -> Ingredient.ofItems(PrismaSteelItems.PRISMA_STEEL),
|
||||||
|
List.of(new ArmorMaterial.Layer(Identifier.of(AcesBS.MOD_ID, "plates"))), 0, 0));
|
||||||
|
|
||||||
public static final RegistryEntry<ArmorMaterial> BERSERKERS = registerArmorMaterial("berserkers",
|
public static final RegistryEntry<ArmorMaterial> BERSERKERS = registerArmorMaterial("berserkers",
|
||||||
() -> new ArmorMaterial(Util.make(new EnumMap<>(ArmorItem.Type.class), map -> {
|
() -> new ArmorMaterial(Util.make(new EnumMap<>(ArmorItem.Type.class), map -> {
|
||||||
map.put(ArmorItem.Type.BOOTS, 2);
|
map.put(ArmorItem.Type.BOOTS, 2);
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ public class ModItemGroups {
|
|||||||
entries.add(ModItems.COMBUSTIBLE_LEMON);
|
entries.add(ModItems.COMBUSTIBLE_LEMON);
|
||||||
entries.add(ModItems.BERSERKERS_PAULDRON);
|
entries.add(ModItems.BERSERKERS_PAULDRON);
|
||||||
entries.add(ModItems.WILDFIRE_BOOTS);
|
entries.add(ModItems.WILDFIRE_BOOTS);
|
||||||
|
entries.add(ModItems.SOVS_PLATE_CARRIER);
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -144,6 +144,24 @@ public class ModItems {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static final Item SOVS_PLATE_CARRIER = ModItems.registerItem("sovs_plate_carrier",
|
||||||
|
new SovsPlateCarrierArmorItem(ModArmorMaterials.PLATES, ArmorItem.Type.CHESTPLATE, new Item.Settings()
|
||||||
|
.maxDamage(6)){
|
||||||
|
@Override
|
||||||
|
public void appendTooltip(ItemStack stack, TooltipContext context, List<Text> tooltip, TooltipType type) {
|
||||||
|
if(!Screen.hasShiftDown()){
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.sovs_plate_carrier_desc"));
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.generic.shift_more"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.sovs_plate_carrier_thanks"));
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.sovs_plate_carrier_desc2"));
|
||||||
|
tooltip.add(Text.translatable("tooltip.acesbs.sovs_plate_carrier_desc3"));
|
||||||
|
}
|
||||||
|
super.appendTooltip(stack, context, tooltip, type);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
public static final Item WILDFIRE_BOOTS = registerItem("wildfire_boots",
|
public static final Item WILDFIRE_BOOTS = registerItem("wildfire_boots",
|
||||||
new WildfireArmorItem(ModArmorMaterials.WILDFIRE_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Settings()
|
new WildfireArmorItem(ModArmorMaterials.WILDFIRE_ARMOR_MATERIAL, ArmorItem.Type.BOOTS, new Item.Settings()
|
||||||
.maxDamage(ArmorItem.Type.BOOTS.getMaxDamage(15))){
|
.maxDamage(ArmorItem.Type.BOOTS.getMaxDamage(15))){
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.acethewildfire.acesbs.item.custom;
|
||||||
|
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.item.ArmorItem;
|
||||||
|
import net.minecraft.item.ArmorMaterial;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.registry.entry.RegistryEntry;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class SovsPlateCarrierArmorItem extends ArmorItem {
|
||||||
|
public SovsPlateCarrierArmorItem(RegistryEntry<ArmorMaterial> material, Type type, Settings settings) {
|
||||||
|
super(material, type, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static float getDamageMultiplier(ItemStack stack) {
|
||||||
|
float durabilityRatio =
|
||||||
|
(float)(stack.getMaxDamage() - stack.getDamage()) / stack.getMaxDamage();
|
||||||
|
|
||||||
|
// 0 durability → 1.0x damage
|
||||||
|
// full durability → 0.01x damage (99% reduction)
|
||||||
|
return 1.0f - (durabilityRatio * 0.99f);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package com.acethewildfire.acesbs.mixin;
|
||||||
|
|
||||||
|
import com.acethewildfire.acesbs.item.custom.SovsPlateCarrierArmorItem;
|
||||||
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
@Mixin(ItemStack.class)
|
||||||
|
public abstract class ItemStackMixin {
|
||||||
|
|
||||||
|
@Inject(method = "damage*", at = @At("HEAD"), cancellable = true)
|
||||||
|
private void preventChestplateBreak(
|
||||||
|
int amount,
|
||||||
|
LivingEntity entity,
|
||||||
|
EquipmentSlot slot,
|
||||||
|
CallbackInfo cir
|
||||||
|
) {
|
||||||
|
ItemStack stack = (ItemStack)(Object)this;
|
||||||
|
|
||||||
|
if (stack.getItem() instanceof SovsPlateCarrierArmorItem) {
|
||||||
|
|
||||||
|
int newDamage = stack.getDamage() + amount;
|
||||||
|
|
||||||
|
if (newDamage >= stack.getMaxDamage()) {
|
||||||
|
stack.setDamage(stack.getMaxDamage());
|
||||||
|
cir.cancel(); // cancel breaking
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.acethewildfire.acesbs.mixin;
|
||||||
|
|
||||||
|
import com.acethewildfire.acesbs.item.custom.SovsPlateCarrierArmorItem;
|
||||||
|
import net.minecraft.entity.EquipmentSlot;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.damage.DamageSource;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
||||||
|
|
||||||
|
@Mixin(LivingEntity.class)
|
||||||
|
public abstract class LivingEntityMixin {
|
||||||
|
|
||||||
|
@ModifyVariable(
|
||||||
|
method = "damage",
|
||||||
|
at = @At("HEAD"),
|
||||||
|
argsOnly = true
|
||||||
|
)
|
||||||
|
private float modifyDamage(float amount) {
|
||||||
|
|
||||||
|
LivingEntity entity = (LivingEntity)(Object)this;
|
||||||
|
|
||||||
|
if (entity instanceof PlayerEntity player) {
|
||||||
|
|
||||||
|
ItemStack chest = player.getEquippedStack(EquipmentSlot.CHEST);
|
||||||
|
|
||||||
|
if (chest.getItem() instanceof SovsPlateCarrierArmorItem) {
|
||||||
|
|
||||||
|
float multiplier =
|
||||||
|
SovsPlateCarrierArmorItem.getDamageMultiplier(chest);
|
||||||
|
|
||||||
|
amount *= multiplier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,8 @@
|
|||||||
"CreeperTickMixin",
|
"CreeperTickMixin",
|
||||||
"CreeperTransformStateMixin",
|
"CreeperTransformStateMixin",
|
||||||
"EntityMixin",
|
"EntityMixin",
|
||||||
|
"LivingEntityMixin",
|
||||||
|
"ItemStackMixin",
|
||||||
"ExampleMixin"
|
"ExampleMixin"
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
|
|
||||||
"item.acesbs.berserkers_pauldron": "Berserker's Pauldron",
|
"item.acesbs.berserkers_pauldron": "Berserker's Pauldron",
|
||||||
"item.acesbs.wildfire_boots": "Wildfire Boots",
|
"item.acesbs.wildfire_boots": "Wildfire Boots",
|
||||||
|
"item.acesbs.sovs_plate_carrier": "Sov's Plate Carrier",
|
||||||
|
|
||||||
"item.acesbs.kaupen_bow": "Kaupen Bow",
|
"item.acesbs.kaupen_bow": "Kaupen Bow",
|
||||||
|
|
||||||
@@ -165,6 +166,11 @@
|
|||||||
"tooltip.acesbs.wildfire_boots_desc": "§c§oThere are no walls.§r",
|
"tooltip.acesbs.wildfire_boots_desc": "§c§oThere are no walls.§r",
|
||||||
"tooltip.acesbs.wildfire_boots_thanks": "§7§oProgrammed with <3 by/for AceTheWildfire§r",
|
"tooltip.acesbs.wildfire_boots_thanks": "§7§oProgrammed with <3 by/for AceTheWildfire§r",
|
||||||
|
|
||||||
|
"tooltip.acesbs.sovs_plate_carrier_desc": "§c§oProtection from Ace... hopefully§r",
|
||||||
|
"tooltip.acesbs.sovs_plate_carrier_desc2": "Damage reduction scales with item durability.",
|
||||||
|
"tooltip.acesbs.sovs_plate_carrier_desc3": "Repair with Ballistic Plates.",
|
||||||
|
"tooltip.acesbs.sovs_plate_carrier_thanks": "§7§oProgrammed with <3 for Sovaeris§r",
|
||||||
|
|
||||||
"tooltip.acesbs.thanks_sov": "§7§oTextures by Sovaeris§r",
|
"tooltip.acesbs.thanks_sov": "§7§oTextures by Sovaeris§r",
|
||||||
|
|
||||||
"tooltip.acesbs.combustible_lemon1": "§7§oDo you know who I am?§r",
|
"tooltip.acesbs.combustible_lemon1": "§7§oDo you know who I am?§r",
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 197 B |
Binary file not shown.
|
Before Width: | Height: | Size: 173 B After Width: | Height: | Size: 368 B |
Binary file not shown.
|
After Width: | Height: | Size: 424 B |
Binary file not shown.
|
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 295 B |
Reference in New Issue
Block a user