mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
artillery gas shells
This commit is contained in:
parent
1a9da01d74
commit
447cb061f2
24
changelog
24
changelog
@ -1,22 +1,14 @@
|
||||
## Added
|
||||
* Laminate glass
|
||||
* A new variant of reinforced glass with higher blast resistance
|
||||
* Also comes in pane shape
|
||||
* Reinforced glass panes
|
||||
* Chlorocalcite
|
||||
* A new bedrock ore, the powder can be heated in the combination furnace to make calcium and chlorine
|
||||
* Blocks for cadmium, TC and CD alloy
|
||||
* Machines now emit soot. Soot collects in units of 4x4 chunks, and spreads into neighboring regions. High levels of soot cause visible smog.
|
||||
* Gas artillery shells
|
||||
* Chlorine
|
||||
* Phosgene
|
||||
* Mustard gas
|
||||
|
||||
## Changed
|
||||
* Updated russian localization
|
||||
* Rebalanced some powder recipes like meteorite powder, spark blend and energy powder
|
||||
* Changed spark battery recipes, the total cost and crafting steps for higher tier batteries should no longer be as insane as before
|
||||
* Technetium steel and ferrouranium drillbits are now craftable
|
||||
* The vacuum refinery now requires a bismuth chipset
|
||||
* Paraffin wax can now also be used to make chlorated petroleum wax
|
||||
* Retextured schrabidium batteries, the cap is now black instead of red
|
||||
* Mist now spawns cloud particles with the correct color instead of standard white
|
||||
* HE artillery shells and rockets now turn blocks into slag
|
||||
|
||||
## Fixed
|
||||
* Fixed hydroreactive stat not applying when an item is dropped in the rain
|
||||
* Fixed the liquefactor not working with ore dictionary recipes
|
||||
* Fixed the TOXIC trait not respecting protection when applying potion effects
|
||||
* Fixed some armor recipes only accepting polymer and not bakelite
|
||||
@ -54,8 +54,8 @@ public class ArmorRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.robes_boots, 1), new Object[] { "R R", "P P", 'R', ModItems.rag, 'P', ModItems.plate_polymer });
|
||||
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_helmet, 1), new Object[] { "SSS", "IGI", 'S', STEEL.plate(), 'I', ModItems.plate_polymer, 'G', KEY_ANYPANE });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', POLYMER.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', POLYMER.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_plate, 1), new Object[] { "KWK", "IKI", "WKW", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_legs, 1), new Object[] { "IWI", "K K", "W W", 'K', ModItems.plate_kevlar, 'I', ANY_PLASTIC.ingot(), 'W', new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.security_boots, 1), new Object[] { "P P", "I I", 'P', STEEL.plate(), 'I', ModItems.plate_polymer });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_helmet, 1), new Object[] { "EEE", "EE ", 'E', DNT.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.dnt_plate, 1), new Object[] { "EE ", "EEE", "EEE", 'E', DNT.ingot() });
|
||||
@ -68,7 +68,7 @@ public class ArmorRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', POLYMER.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', ANY_PLASTIC.ingot(), 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_legs });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ajr_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_ajr, 'B', ModItems.alloy_boots });
|
||||
@ -81,9 +81,9 @@ public class ArmorRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_plate_jetpack, 1), new Object[] { "NFN", "TPT", "ICI", 'N', ModItems.plate_armor_lunar, 'F', ModItems.fins_quad_titanium, 'T', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.XENON.getID()), 'P', ModItems.bj_plate, 'I', ModItems.mp_thruster_10_xenon, 'C', ModItems.crystal_phosphorus });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_legs, 1), new Object[] { "MBM", "NSN", "N N", 'N', ModItems.plate_armor_lunar, 'M', ModItems.motor_desh, 'S', ModItems.starmetal_legs, 'B', ModBlocks.block_starmetal });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bj_boots, 1), new Object[] { "N N", "BSB", 'N', ModItems.plate_armor_lunar, 'S', ModItems.starmetal_boots, 'B', ModBlocks.block_starmetal });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ModItems.plate_polymer, 'F', ModItems.gas_mask_filter });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', POLYMER.ingot(), 'M', ModItems.motor_desh });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', POLYMER.ingot(), 'M', ModItems.motor_desh });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_helmet, 1), new Object[] { "PPC", "PBP", "IFI", 'P', ModItems.plate_armor_hev, 'C', ModItems.circuit_targeting_tier4, 'B', ModItems.titanium_helmet, 'I', ANY_PLASTIC.ingot(), 'F', ModItems.gas_mask_filter });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_plate, 1), new Object[] { "MPM", "IBI", "PPP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_plate, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_legs, 1), new Object[] { "MPM", "IBI", "P P", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_legs, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.motor_desh });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.hev_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_hev, 'B', ModItems.titanium_boots });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_helmet, 1), new Object[] { "PWP", "PBP", "FSF", 'P', ModItems.plate_armor_fau, 'W', new ItemStack(Blocks.wool, 1, 14), 'B', ModItems.starmetal_helmet, 'F', ModItems.gas_mask_filter, 'S', ModItems.pipes_steel });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.fau_plate, 1), new Object[] { "MCM", "PBP", "PSP", 'M', ModItems.motor_desh, 'C', ModItems.demon_core_closed, 'P', ModItems.plate_armor_fau, 'B', ModItems.starmetal_plate, 'S', ModBlocks.ancient_scrap });
|
||||
@ -162,7 +162,7 @@ public class ArmorRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_olde, 1), new Object[] { "PPP", "GPG", " F ", 'G', KEY_ANYPANE, 'P', Items.leather, 'F', IRON.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gas_mask_mono, 1), new Object[] { " P ", "PPP", " F ", 'P', ModItems.plate_polymer, 'F', IRON.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', IRON.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', POLYMER.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ashglasses, 1), new Object[] { "I I", "GPG", 'I', ModItems.plate_polymer, 'G', ModBlocks.glass_ash, 'P', ANY_PLASTIC.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_rag, 1), new Object[] { "RRR", 'R', ModItems.rag_damp });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mask_piss, 1), new Object[] { "RRR", 'R', ModItems.rag_piss });
|
||||
|
||||
|
||||
@ -210,7 +210,7 @@ public class EntityMappings {
|
||||
addEntity(EntityCog.class, "entity_stray_cog", 1000);
|
||||
addEntity(EntitySawblade.class, "entity_stray_saw", 1000);
|
||||
addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000);
|
||||
addEntity(EntityMist.class, "entity_mist", 1000);
|
||||
addEntity(EntityMist.class, "entity_mist", 250, false);
|
||||
|
||||
addEntity(EntityItemWaste.class, "entity_item_waste", 100);
|
||||
addEntity(EntityItemBuoyant.class, "entity_item_buoyant", 100);
|
||||
|
||||
@ -16,6 +16,7 @@ import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.ArmorUtil;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
@ -101,10 +102,21 @@ public class EntityMist extends Entity {
|
||||
} else {
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
double x = this.boundingBox.minX + rand.nextDouble() * (this.boundingBox.maxX - this.boundingBox.minX);
|
||||
double x = this.boundingBox.minX + (rand.nextDouble() - 0.5) * (this.boundingBox.maxX - this.boundingBox.minX);
|
||||
double y = this.boundingBox.minY + rand.nextDouble() * (this.boundingBox.maxY - this.boundingBox.minY);
|
||||
double z = this.boundingBox.minZ + rand.nextDouble() * (this.boundingBox.maxZ - this.boundingBox.minZ);
|
||||
worldObj.spawnParticle("cloud", x, y, z, 0, 0, 0);
|
||||
double z = this.boundingBox.minZ + (rand.nextDouble() - 0.5) * (this.boundingBox.maxZ - this.boundingBox.minZ);
|
||||
|
||||
NBTTagCompound fx = new NBTTagCompound();
|
||||
fx.setString("type", "tower");
|
||||
fx.setFloat("lift", 0.5F);
|
||||
fx.setFloat("base", 0.75F);
|
||||
fx.setFloat("max", 2F);
|
||||
fx.setInteger("life", 50 + worldObj.rand.nextInt(10));
|
||||
fx.setInteger("color",this.getType().getColor());
|
||||
fx.setDouble("posX", x);
|
||||
fx.setDouble("posY", y);
|
||||
fx.setDouble("posZ", z);
|
||||
MainRegistry.proxy.effectNT(fx);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -192,11 +204,14 @@ public class EntityMist extends Entity {
|
||||
@Override
|
||||
protected void readEntityFromNBT(NBTTagCompound nbt) {
|
||||
this.setType(Fluids.fromID(nbt.getInteger("type")));
|
||||
this.setArea(nbt.getFloat("width"), nbt.getFloat("height"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeEntityToNBT(NBTTagCompound nbt) {
|
||||
nbt.setInteger("type", this.getType().getID());
|
||||
nbt.setFloat("width", this.dataWatcher.getWatchableObjectFloat(11));
|
||||
nbt.setFloat("height", this.dataWatcher.getWatchableObjectFloat(12));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -204,6 +219,12 @@ public class EntityMist extends Entity {
|
||||
public boolean canRenderOnFire() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override public void moveEntity(double x, double y, double z) { }
|
||||
@Override public void addVelocity(double x, double y, double z) { }
|
||||
@Override public void setPosition(double x, double y, double z) {
|
||||
if(this.ticksExisted == 0) super.setPosition(x, y, z); //honest to fucking god mojang suck my fucking nuts
|
||||
}
|
||||
|
||||
public static SprayStyle getStyleFromType(FluidType type) {
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ public class BlockMutatorDebris implements IBlockMutator {
|
||||
World world = explosion.world;
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
|
||||
if(b.isNormalCube()) {
|
||||
if(b.isNormalCube() && (b != metaBlock.block || world.getBlockMetadata(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) != metaBlock.meta)) {
|
||||
world.setBlock(x, y, z, metaBlock.block, metaBlock.meta, 3);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -64,6 +64,8 @@ public class BlockProcessorStandard implements IBlockProcessor {
|
||||
|
||||
block.onBlockExploded(world, blockX, blockY, blockZ, explosion.compat);
|
||||
if(this.convert != null) this.convert.mutatePre(explosion, block, world.getBlockMetadata(blockX, blockY, blockZ), blockX, blockY, blockZ);
|
||||
} else {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,14 +1,10 @@
|
||||
package com.hbm.inventory;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.AchievementHandler;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class SlotCraftingOutput extends Slot {
|
||||
|
||||
@ -254,7 +254,7 @@ public class Fluids {
|
||||
SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS);
|
||||
OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS);
|
||||
RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F));
|
||||
CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1));
|
||||
CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25));
|
||||
HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x513F39));
|
||||
REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xD180D6));
|
||||
LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52));
|
||||
|
||||
@ -116,6 +116,8 @@ public class FT_Toxin extends FluidTrait {
|
||||
@Override
|
||||
public void poison(EntityLivingBase entity, double intensity) {
|
||||
|
||||
if(isProtected(entity)) return;
|
||||
|
||||
for(PotionEffect eff : effects) {
|
||||
entity.addPotionEffect(new PotionEffect(eff.getPotionID(), (int) (eff.getDuration() * intensity), eff.getAmplifier()));
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@ import com.hbm.inventory.container.ContainerMixer;
|
||||
import com.hbm.inventory.recipes.MixerRecipes;
|
||||
import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.AuxButtonPacket;
|
||||
import com.hbm.packet.NBTControlPacket;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineMixer;
|
||||
|
||||
@ -380,6 +380,24 @@ public class ChemplantRecipes extends SerializableRecipe {
|
||||
.inputItems(new OreDictStack(DIAMOND.dust(), 1))
|
||||
.inputFluids(new FluidStack(Fluids.XPJUICE, 500))
|
||||
.outputFluids(new FluidStack(Fluids.ENDERJUICE, 100)));
|
||||
recipes.add(new ChemRecipe(98, "SHELL_CHLORINE", 100)
|
||||
.inputItems(
|
||||
new ComparableStack(ModItems.ammo_arty, 1, 0),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 1))
|
||||
.inputFluids(new FluidStack(Fluids.CHLORINE, 4000))
|
||||
.outputItems(new ItemStack(ModItems.ammo_arty, 1, 9)));
|
||||
recipes.add(new ChemRecipe(99, "SHELL_PHOSGENE", 100)
|
||||
.inputItems(
|
||||
new ComparableStack(ModItems.ammo_arty, 1, 0),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 1))
|
||||
.inputFluids(new FluidStack(Fluids.PHOSGENE, 4000))
|
||||
.outputItems(new ItemStack(ModItems.ammo_arty, 1, 10)));
|
||||
recipes.add(new ChemRecipe(100, "SHELL_MUSTARD", 100)
|
||||
.inputItems(
|
||||
new ComparableStack(ModItems.ammo_arty, 1, 0),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 1))
|
||||
.inputFluids(new FluidStack(Fluids.MUSTARDGAS, 4000))
|
||||
.outputItems(new ItemStack(ModItems.ammo_arty, 1, 11)));
|
||||
}
|
||||
|
||||
public static void registerFuelProcessing() {
|
||||
|
||||
@ -2,35 +2,14 @@ package com.hbm.items.tool;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.rail.IRailNTM;
|
||||
import com.hbm.blocks.rail.IRailNTM.RailContext;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorBulkie;
|
||||
import com.hbm.explosion.vanillant.standard.BlockMutatorBulkie;
|
||||
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
import com.hbm.handler.pollution.PollutionHandler;
|
||||
import com.hbm.handler.pollution.PollutionHandler.PollutionType;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.PlayerInformPacket;
|
||||
import com.hbm.util.ParticleUtil;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.world.feature.OilSpot;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemWandD extends Item {
|
||||
|
||||
@ -3,7 +3,9 @@ package com.hbm.items.weapon;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.BombConfig;
|
||||
import com.hbm.entity.effect.EntityMist;
|
||||
import com.hbm.entity.effect.EntityNukeCloudSmall;
|
||||
import com.hbm.entity.logic.EntityNukeExplosionMK5;
|
||||
import com.hbm.entity.projectile.EntityArtilleryShell;
|
||||
@ -12,10 +14,12 @@ import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.explosion.ExplosionNukeSmall;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.BlockMutatorDebris;
|
||||
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorCross;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard;
|
||||
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
@ -46,8 +50,7 @@ import net.minecraft.util.MovingObjectPosition.MovingObjectType;
|
||||
public class ItemAmmoArty extends Item {
|
||||
|
||||
public static Random rand = new Random();
|
||||
public static ArtilleryShell[] itemTypes = new ArtilleryShell[ /* >>> */ 9 /* <<< */ ];
|
||||
//public static ArtilleryShell[] shellTypes = new ArtilleryShell[ /* >>> */ 8 /* <<< */ ];
|
||||
public static ArtilleryShell[] itemTypes = new ArtilleryShell[ /* >>> */ 12 /* <<< */ ];
|
||||
/* item types */
|
||||
public final int NORMAL = 0;
|
||||
public final int CLASSIC = 1;
|
||||
@ -58,6 +61,9 @@ public class ItemAmmoArty extends Item {
|
||||
public final int MINI_NUKE_MULTI = 6;
|
||||
public final int PHOSPHORUS_MULTI = 7;
|
||||
public final int CARGO = 8;
|
||||
public final int CHLORINE = 9;
|
||||
public final int PHOSGENE = 10;
|
||||
public final int MUSTARD = 11;
|
||||
/* non-item shell types */
|
||||
|
||||
public ItemAmmoArty() {
|
||||
@ -78,6 +84,9 @@ public class ItemAmmoArty extends Item {
|
||||
list.add(new ItemStack(item, 1, MINI_NUKE_MULTI));
|
||||
list.add(new ItemStack(item, 1, NUKE));
|
||||
list.add(new ItemStack(item, 1, CARGO));
|
||||
list.add(new ItemStack(item, 1, CHLORINE));
|
||||
list.add(new ItemStack(item, 1, PHOSGENE));
|
||||
list.add(new ItemStack(item, 1, MUSTARD));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -195,7 +204,7 @@ public class ItemAmmoArty extends Item {
|
||||
ExplosionVNT xnt = new ExplosionVNT(shell.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size);
|
||||
if(breaksBlocks) {
|
||||
xnt.setBlockAllocator(new BlockAllocatorStandard(48));
|
||||
xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop());
|
||||
xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1)));
|
||||
}
|
||||
xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(rangeMod));
|
||||
xnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
@ -298,6 +307,60 @@ public class ItemAmmoArty extends Item {
|
||||
}
|
||||
}};
|
||||
|
||||
/* GAS */
|
||||
this.itemTypes[CHLORINE] = new ArtilleryShell("ammo_arty_chlorine", SpentCasing.COLOR_CASE_16INCH) {
|
||||
public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) {
|
||||
shell.killAndClear();
|
||||
Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize();
|
||||
shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false);
|
||||
EntityMist mist = new EntityMist(shell.worldObj);
|
||||
mist.setType(Fluids.CHLORINE);
|
||||
mist.setPosition(mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord - 3, mop.hitVec.zCoord - vec.zCoord);
|
||||
mist.setArea(15, 7.5F);
|
||||
shell.worldObj.spawnEntityInWorld(mist);
|
||||
}
|
||||
};
|
||||
this.itemTypes[PHOSGENE] = new ArtilleryShell("ammo_arty_phosgene", SpentCasing.COLOR_CASE_16INCH_NUKE) {
|
||||
public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) {
|
||||
shell.killAndClear();
|
||||
Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize();
|
||||
shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false);
|
||||
for(int i = 0; i < 3; i++) {
|
||||
EntityMist mist = new EntityMist(shell.worldObj);
|
||||
mist.setType(Fluids.PHOSGENE);
|
||||
double x = mop.hitVec.xCoord - vec.xCoord;
|
||||
double z = mop.hitVec.zCoord - vec.zCoord;
|
||||
if(i > 0) {
|
||||
x += rand.nextGaussian() * 15;
|
||||
z += rand.nextGaussian() * 15;
|
||||
}
|
||||
mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z);
|
||||
mist.setArea(15, 10);
|
||||
shell.worldObj.spawnEntityInWorld(mist);
|
||||
}
|
||||
}
|
||||
};
|
||||
this.itemTypes[MUSTARD] = new ArtilleryShell("ammo_arty_mustard_gas", SpentCasing.COLOR_CASE_16INCH_NUKE) {
|
||||
public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) {
|
||||
shell.killAndClear();
|
||||
Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize();
|
||||
shell.worldObj.createExplosion(shell, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, 5F, false);
|
||||
for(int i = 0; i < 5; i++) {
|
||||
EntityMist mist = new EntityMist(shell.worldObj);
|
||||
mist.setType(Fluids.MUSTARDGAS);
|
||||
double x = mop.hitVec.xCoord - vec.xCoord;
|
||||
double z = mop.hitVec.zCoord - vec.zCoord;
|
||||
if(i > 0) {
|
||||
x += rand.nextGaussian() * 25;
|
||||
z += rand.nextGaussian() * 25;
|
||||
}
|
||||
mist.setPosition(x, mop.hitVec.yCoord - vec.yCoord - 5, z);
|
||||
mist.setArea(20, 10);
|
||||
shell.worldObj.spawnEntityInWorld(mist);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* CLUSTER SHELLS */
|
||||
this.itemTypes[PHOSPHORUS_MULTI] = new ArtilleryShell("ammo_arty_phosphorus_multi", SpentCasing.COLOR_CASE_16INCH_PHOS) {
|
||||
public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { ItemAmmoArty.this.itemTypes[PHOSPHORUS].onImpact(shell, mop); }
|
||||
|
||||
@ -2,12 +2,14 @@ package com.hbm.items.weapon;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.projectile.EntityArtilleryRocket;
|
||||
import com.hbm.explosion.ExplosionChaos;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.explosion.ExplosionNukeSmall;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.BlockMutatorDebris;
|
||||
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.EntityProcessorCross;
|
||||
import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard;
|
||||
@ -143,7 +145,7 @@ public class ItemAmmoHIMARS extends Item {
|
||||
ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size);
|
||||
if(breaksBlocks) {
|
||||
xnt.setBlockAllocator(new BlockAllocatorStandard(48));
|
||||
xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop());
|
||||
xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(new BlockMutatorDebris(ModBlocks.block_slag, 1)));
|
||||
}
|
||||
xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod));
|
||||
xnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
|
||||
@ -189,7 +189,7 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SBS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'B', DURA.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SDS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'D', DURA.ingot() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten });
|
||||
//addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE });
|
||||
//addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() });
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.hbm.main;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.lwjgl.opengl.GLContext;
|
||||
|
||||
import com.hbm.blocks.ICustomBlockHighlight;
|
||||
import com.hbm.handler.pollution.PollutionHandler.PollutionType;
|
||||
@ -9,9 +10,9 @@ import com.hbm.items.armor.IArmorDisableModel.EnumPlayerPart;
|
||||
import com.hbm.packet.PermaSyncHandler;
|
||||
import com.hbm.render.model.ModelMan;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.Event.Result;
|
||||
import cpw.mods.fml.common.eventhandler.EventPriority;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
@ -28,7 +29,6 @@ import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
|
||||
import net.minecraftforge.client.event.EntityViewRenderEvent.FogColors;
|
||||
import net.minecraftforge.client.event.EntityViewRenderEvent.FogDensity;
|
||||
import net.minecraftforge.client.event.EntityViewRenderEvent.RenderFogEvent;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
|
||||
public class ModEventHandlerRenderer {
|
||||
@ -325,29 +325,55 @@ public class ModEventHandlerRenderer {
|
||||
}
|
||||
}*/
|
||||
|
||||
float renderSoot = 0;
|
||||
|
||||
@SubscribeEvent
|
||||
public void setupFog(RenderFogEvent event) {
|
||||
public void worldTick(WorldTickEvent event) {
|
||||
|
||||
if(event.phase == event.phase.START) {
|
||||
|
||||
float step = 0.05F;
|
||||
float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()];
|
||||
|
||||
if(Math.abs(renderSoot - soot) < step) {
|
||||
renderSoot = soot;
|
||||
} else if(renderSoot < soot) {
|
||||
renderSoot += step;
|
||||
} else if(renderSoot > soot) {
|
||||
renderSoot -= step;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.LOW)
|
||||
public void thickenFog(FogDensity event) {
|
||||
float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()];
|
||||
if(soot > 10) {
|
||||
float soot = renderSoot - 35;
|
||||
if(soot > 0) {
|
||||
//event.density = Math.min((soot - 5) * 0.01F, 0.5F);
|
||||
GL11.glFogf(GL11.GL_FOG_START, 0.0F);
|
||||
float farPlaneDistance = (float) (Minecraft.getMinecraft().gameSettings.renderDistanceChunks * 16);
|
||||
GL11.glFogf(GL11.GL_FOG_END, Math.max(farPlaneDistance * 0.8F / (soot * 0.05F), 5F));
|
||||
float fogDist = farPlaneDistance / (1 + soot * 0.05F);
|
||||
GL11.glFogf(GL11.GL_FOG_START, 0);
|
||||
GL11.glFogf(GL11.GL_FOG_END, fogDist);
|
||||
|
||||
if(GLContext.getCapabilities().GL_NV_fog_distance) {
|
||||
GL11.glFogi(34138, 34139);
|
||||
}
|
||||
//GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP);
|
||||
//GL11.glFogf(GL11.GL_FOG_DENSITY, 2F);
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.LOW)
|
||||
public void tintFog(FogColors event) {
|
||||
float soot = PermaSyncHandler.pollution[PollutionType.SOOT.ordinal()];
|
||||
if(soot > 10) {
|
||||
event.red = 0.15F;
|
||||
event.green = 0.15F;
|
||||
event.blue = 0.15F;
|
||||
float soot = renderSoot - 35;
|
||||
float sootColor = 0.15F;
|
||||
float sootReq = 100F;
|
||||
if(soot > 0) {
|
||||
float interp = Math.min(soot / sootReq, 1F);
|
||||
event.red = event.red * (1 - interp) + sootColor * interp;
|
||||
event.green = event.green * (1 - interp) + sootColor * interp;
|
||||
event.blue = event.blue * (1 - interp) + sootColor * interp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,8 +20,6 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
public class RendererObjTester extends TileEntitySpecialRenderer {
|
||||
|
||||
|
||||
@ -3,8 +3,6 @@ package com.hbm.tileentity.machine;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.interfaces.IFluidAcceptor;
|
||||
import com.hbm.interfaces.IFluidSource;
|
||||
import com.hbm.inventory.RecipesCommon.AStack;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
|
||||
@ -4,7 +4,6 @@ import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.ContaminationUtil;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
@ -12,7 +11,6 @@ import com.hbm.util.ContaminationUtil.HazardType;
|
||||
import api.hbm.block.IPileNeutronReceiver;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
|
||||
@ -4,11 +4,9 @@ import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.BlockEnums.EnumBiomeType;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.generic.BlockStalagmite;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.biome.BiomeGenBase.TempCategory;
|
||||
|
||||
@ -942,11 +942,14 @@ item.ammo_9mm_du.name=9mm Patrone (DU)
|
||||
item.ammo_9mm_rocket.name=9mm Rakete
|
||||
item.ammo_arty.name=16" Artilleriegranate
|
||||
item.ammo_arty_cargo.name=16" Artilleriegranate (Expresslieferung)
|
||||
item.ammo_arty_chlorine.name=16" Artilleriegranate (Chlorgas)
|
||||
item.ammo_arty_classic.name=16" Artilleriegranate (Das Factorio-Spezial)
|
||||
item.ammo_arty_he.name=16" Artilleriegranate (HE)
|
||||
item.ammo_arty_mini_nuke.name=16" Mikroatomgranate
|
||||
item.ammo_arty_mini_nuke_multi.name=16" Mehrfach-Mikroatomgranate
|
||||
item.ammo_arty_mustard_gas.name=16" Artilleriegranate (Senfgas)
|
||||
item.ammo_arty_nuke.name=16" Atomare Artilleriegranate
|
||||
item.ammo_arty_phosgene.name=16" Artilleriegranate (Phosgen)
|
||||
item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate
|
||||
item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate
|
||||
item.ammo_cell.name=Energiezelle
|
||||
|
||||
@ -1522,11 +1522,14 @@ item.ammo_9mm_du.name=9mm Round (DU)
|
||||
item.ammo_9mm_rocket.name=9mm Rocket
|
||||
item.ammo_arty.name=16" Artillery Shell
|
||||
item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell
|
||||
item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell
|
||||
item.ammo_arty_classic.name=16" Artillery Shell (The Factorio Special)
|
||||
item.ammo_arty_he.name=16" High Explosive Artillery Shell
|
||||
item.ammo_arty_mini_nuke.name=16" Micro Nuclear Artillery Shell
|
||||
item.ammo_arty_mini_nuke_multi.name=16" Multi Micro Nuclear Artillery Shell
|
||||
item.ammo_arty_mustard_gas.name=16" Mustard Gas Artillery Shell
|
||||
item.ammo_arty_nuke.name=16" Nuclear Artillery Shell
|
||||
item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell
|
||||
item.ammo_arty_phosphorus.name=16" Phosphorus Shell
|
||||
item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell
|
||||
item.ammo_cell.name=Energy Cell
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 523 B |
Binary file not shown.
|
After Width: | Height: | Size: 494 B |
Binary file not shown.
|
After Width: | Height: | Size: 491 B |
Loading…
x
Reference in New Issue
Block a user