From 8028dde5aec948ba0ab9bbba2619d9607de65bd2 Mon Sep 17 00:00:00 2001 From: KAMKEEL Date: Tue, 11 May 2021 18:14:31 -0400 Subject: [PATCH 1/5] Added Minecraft Source to be adapted later This is only for experimental purposes --- .../minecraft/block/properties/IProperty.java | 19 + .../minecraft/block/state/IBlockState.java | 23 + src/main/java/net/minecraft/util/Vec3i.java | 123 ++++++ .../net/minecraft/util/math/BlockPos.java | 407 ++++++++++++++++++ 4 files changed, 572 insertions(+) create mode 100644 src/main/java/net/minecraft/block/properties/IProperty.java create mode 100644 src/main/java/net/minecraft/block/state/IBlockState.java create mode 100644 src/main/java/net/minecraft/util/Vec3i.java create mode 100644 src/main/java/net/minecraft/util/math/BlockPos.java diff --git a/src/main/java/net/minecraft/block/properties/IProperty.java b/src/main/java/net/minecraft/block/properties/IProperty.java new file mode 100644 index 000000000..046b17e49 --- /dev/null +++ b/src/main/java/net/minecraft/block/properties/IProperty.java @@ -0,0 +1,19 @@ +package net.minecraft.block.properties; + +import java.util.Collection; + +/** This code is owned by Minecraft */ + +public interface IProperty> +{ + String getName(); + + Collection getAllowedValues(); + + Class getValueClass(); + + /** + * Get the name for the given value. + */ + String getName(T value); +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/block/state/IBlockState.java b/src/main/java/net/minecraft/block/state/IBlockState.java new file mode 100644 index 000000000..4dd685947 --- /dev/null +++ b/src/main/java/net/minecraft/block/state/IBlockState.java @@ -0,0 +1,23 @@ +package net.minecraft.block.state; + +import com.google.common.collect.ImmutableMap; +import java.util.Collection; +import net.minecraft.block.Block; +import net.minecraft.block.properties.IProperty; + +/** This code is owned by Minecraft */ + +public interface IBlockState +{ + Collection getPropertyNames(); + + > T getValue(IProperty property); + + , V extends T> IBlockState withProperty(IProperty property, V value); + + > IBlockState cycleProperty(IProperty property); + + ImmutableMap getProperties(); + + Block getBlock(); +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/util/Vec3i.java b/src/main/java/net/minecraft/util/Vec3i.java new file mode 100644 index 000000000..c31a3e150 --- /dev/null +++ b/src/main/java/net/minecraft/util/Vec3i.java @@ -0,0 +1,123 @@ +package net.minecraft.util; + +import com.google.common.base.Objects; + +/** This code is owned by Minecraft */ + +public class Vec3i implements Comparable +{ + /** The Null vector constant (0, 0, 0) */ + public static final Vec3i NULL_VECTOR = new Vec3i(0, 0, 0); + /** X coordinate */ + private final int x; + /** Y coordinate */ + private final int y; + /** Z coordinate */ + private final int z; + + public Vec3i(int xIn, int yIn, int zIn) + { + this.x = xIn; + this.y = yIn; + this.z = zIn; + } + + public Vec3i(double xIn, double yIn, double zIn) + { + this(MathHelper.floor_double(xIn), MathHelper.floor_double(yIn), MathHelper.floor_double(zIn)); + } + + public boolean equals(Object p_equals_1_) + { + if (this == p_equals_1_) + { + return true; + } + else if (!(p_equals_1_ instanceof Vec3i)) + { + return false; + } + else + { + Vec3i vec3i = (Vec3i)p_equals_1_; + return this.getX() != vec3i.getX() ? false : (this.getY() != vec3i.getY() ? false : this.getZ() == vec3i.getZ()); + } + } + + public int hashCode() + { + return (this.getY() + this.getZ() * 31) * 31 + this.getX(); + } + + public int compareTo(Vec3i p_compareTo_1_) + { + return this.getY() == p_compareTo_1_.getY() ? (this.getZ() == p_compareTo_1_.getZ() ? this.getX() - p_compareTo_1_.getX() : this.getZ() - p_compareTo_1_.getZ()) : this.getY() - p_compareTo_1_.getY(); + } + + /** + * Get the X coordinate + */ + public int getX() + { + return this.x; + } + + /** + * Get the Y coordinate + */ + public int getY() + { + return this.y; + } + + /** + * Get the Z coordinate + */ + public int getZ() + { + return this.z; + } + + /** + * Calculate the cross product of this and the given Vector + */ + public Vec3i crossProduct(Vec3i vec) + { + return new Vec3i(this.getY() * vec.getZ() - this.getZ() * vec.getY(), this.getZ() * vec.getX() - this.getX() * vec.getZ(), this.getX() * vec.getY() - this.getY() * vec.getX()); + } + + /** + * Calculate squared distance to the given coordinates + */ + public double distanceSq(double toX, double toY, double toZ) + { + double d0 = (double)this.getX() - toX; + double d1 = (double)this.getY() - toY; + double d2 = (double)this.getZ() - toZ; + return d0 * d0 + d1 * d1 + d2 * d2; + } + + /** + * Compute square of distance from point x, y, z to center of this Block + */ + public double distanceSqToCenter(double xIn, double yIn, double zIn) + { + double d0 = (double)this.getX() + 0.5D - xIn; + double d1 = (double)this.getY() + 0.5D - yIn; + double d2 = (double)this.getZ() + 0.5D - zIn; + return d0 * d0 + d1 * d1 + d2 * d2; + } + + /** + * Calculate squared distance to the given Vector + */ + public double distanceSq(Vec3i to) + { + return this.distanceSq((double)to.getX(), (double)to.getY(), (double)to.getZ()); + } + + public String toString() + { + return Objects.toStringHelper(this).add("x", this.getX()).add("y", this.getY()).add("z", this.getZ()).toString(); + } +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/util/math/BlockPos.java b/src/main/java/net/minecraft/util/math/BlockPos.java new file mode 100644 index 000000000..87db5faf0 --- /dev/null +++ b/src/main/java/net/minecraft/util/math/BlockPos.java @@ -0,0 +1,407 @@ +package net.minecraft.util.math; + +import com.google.common.collect.AbstractIterator; +import java.util.Iterator; +import net.minecraft.entity.Entity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.MathHelper; +import net.minecraft.util.Vec3; +import net.minecraft.util.Vec3i; + +/** This code is owned by Minecraft */ + +public class BlockPos extends Vec3i{ + /** The BlockPos with all coordinates 0 */ + public static final BlockPos ORIGIN = new BlockPos(0, 0, 0); + private static final int NUM_X_BITS = 1 + MathHelper.calculateLogBaseTwo(MathHelper.roundUpToPowerOfTwo(30000000)); + private static final int NUM_Z_BITS = NUM_X_BITS; + private static final int NUM_Y_BITS = 64 - NUM_X_BITS - NUM_Z_BITS; + private static final int Y_SHIFT = 0 + NUM_Z_BITS; + private static final int X_SHIFT = Y_SHIFT + NUM_Y_BITS; + private static final long X_MASK = (1L << NUM_X_BITS) - 1L; + private static final long Y_MASK = (1L << NUM_Y_BITS) - 1L; + private static final long Z_MASK = (1L << NUM_Z_BITS) - 1L; + + public BlockPos(int x, int y, int z) + { + super(x, y, z); + } + + public BlockPos(double x, double y, double z) + { + super(x, y, z); + } + + public BlockPos(Entity source) + { + this(source.posX, source.posY, source.posZ); + } + + public BlockPos(Vec3 source) + { + this(source.xCoord, source.yCoord, source.zCoord); + } + + public BlockPos(Vec3i source) + { + this(source.getX(), source.getY(), source.getZ()); + } + + /** + * Add the given coordinates to the coordinates of this BlockPos + */ + public BlockPos add(double x, double y, double z) + { + return x == 0.0D && y == 0.0D && z == 0.0D ? this : new BlockPos((double)this.getX() + x, (double)this.getY() + y, (double)this.getZ() + z); + } + + /** + * Add the given coordinates to the coordinates of this BlockPos + */ + public BlockPos add(int x, int y, int z) + { + return x == 0 && y == 0 && z == 0 ? this : new BlockPos(this.getX() + x, this.getY() + y, this.getZ() + z); + } + + /** + * Add the given Vector to this BlockPos + */ + public BlockPos add(Vec3i vec) + { + return vec.getX() == 0 && vec.getY() == 0 && vec.getZ() == 0 ? this : new BlockPos(this.getX() + vec.getX(), this.getY() + vec.getY(), this.getZ() + vec.getZ()); + } + + /** + * Subtract the given Vector from this BlockPos + */ + public BlockPos subtract(Vec3i vec) + { + return vec.getX() == 0 && vec.getY() == 0 && vec.getZ() == 0 ? this : new BlockPos(this.getX() - vec.getX(), this.getY() - vec.getY(), this.getZ() - vec.getZ()); + } + + /** + * Offset this BlockPos 1 block up + */ + public BlockPos up() + { + return this.up(1); + } + + /** + * Offset this BlockPos n blocks up + */ + public BlockPos up(int n) + { + return this.offset(EnumFacing.UP, n); + } + + /** + * Offset this BlockPos 1 block down + */ + public BlockPos down() + { + return this.down(1); + } + + /** + * Offset this BlockPos n blocks down + */ + public BlockPos down(int n) + { + return this.offset(EnumFacing.DOWN, n); + } + + /** + * Offset this BlockPos 1 block in northern direction + */ + public BlockPos north() + { + return this.north(1); + } + + /** + * Offset this BlockPos n blocks in northern direction + */ + public BlockPos north(int n) + { + return this.offset(EnumFacing.NORTH, n); + } + + /** + * Offset this BlockPos 1 block in southern direction + */ + public BlockPos south() + { + return this.south(1); + } + + /** + * Offset this BlockPos n blocks in southern direction + */ + public BlockPos south(int n) + { + return this.offset(EnumFacing.SOUTH, n); + } + + /** + * Offset this BlockPos 1 block in western direction + */ + public BlockPos west() + { + return this.west(1); + } + + /** + * Offset this BlockPos n blocks in western direction + */ + public BlockPos west(int n) + { + return this.offset(EnumFacing.WEST, n); + } + + /** + * Offset this BlockPos 1 block in eastern direction + */ + public BlockPos east() + { + return this.east(1); + } + + /** + * Offset this BlockPos n blocks in eastern direction + */ + public BlockPos east(int n) + { + return this.offset(EnumFacing.EAST, n); + } + + /** + * Offset this BlockPos 1 block in the given direction + */ + public BlockPos offset(EnumFacing facing) + { + return this.offset(facing, 1); + } + + /** + * Offsets this BlockPos n blocks in the given direction + */ + public BlockPos offset(EnumFacing facing, int n) + { + return n == 0 ? this : new BlockPos(this.getX() + facing.getFrontOffsetX() * n, this.getY() + facing.getFrontOffsetY() * n, this.getZ() + facing.getFrontOffsetZ() * n); + } + + /** + * Calculate the cross product of this and the given Vector + */ + public BlockPos crossProduct(Vec3i vec) + { + return new BlockPos(this.getY() * vec.getZ() - this.getZ() * vec.getY(), this.getZ() * vec.getX() - this.getX() * vec.getZ(), this.getX() * vec.getY() - this.getY() * vec.getX()); + } + + /** + * Serialize this BlockPos into a long value + */ + public long toLong() + { + return ((long)this.getX() & X_MASK) << X_SHIFT | ((long)this.getY() & Y_MASK) << Y_SHIFT | ((long)this.getZ() & Z_MASK) << 0; + } + + /** + * Create a BlockPos from a serialized long value (created by toLong) + */ + public static BlockPos fromLong(long serialized) + { + int i = (int)(serialized << 64 - X_SHIFT - NUM_X_BITS >> 64 - NUM_X_BITS); + int j = (int)(serialized << 64 - Y_SHIFT - NUM_Y_BITS >> 64 - NUM_Y_BITS); + int k = (int)(serialized << 64 - NUM_Z_BITS >> 64 - NUM_Z_BITS); + return new BlockPos(i, j, k); + } + + public static Iterable getAllInBox(BlockPos from, BlockPos to) + { + final BlockPos blockpos = new BlockPos(Math.min(from.getX(), to.getX()), Math.min(from.getY(), to.getY()), Math.min(from.getZ(), to.getZ())); + final BlockPos blockpos1 = new BlockPos(Math.max(from.getX(), to.getX()), Math.max(from.getY(), to.getY()), Math.max(from.getZ(), to.getZ())); + return new Iterable() + { + public Iterator iterator() + { + return new AbstractIterator() + { + private BlockPos lastReturned = null; + protected BlockPos computeNext() + { + if (this.lastReturned == null) + { + this.lastReturned = blockpos; + return this.lastReturned; + } + else if (this.lastReturned.equals(blockpos1)) + { + return (BlockPos)this.endOfData(); + } + else + { + int i = this.lastReturned.getX(); + int j = this.lastReturned.getY(); + int k = this.lastReturned.getZ(); + + if (i < blockpos1.getX()) + { + ++i; + } + else if (j < blockpos1.getY()) + { + i = blockpos.getX(); + ++j; + } + else if (k < blockpos1.getZ()) + { + i = blockpos.getX(); + j = blockpos.getY(); + ++k; + } + + this.lastReturned = new BlockPos(i, j, k); + return this.lastReturned; + } + } + }; + } + }; + } + + public static Iterable getAllInBoxMutable(BlockPos from, BlockPos to) + { + final BlockPos blockpos = new BlockPos(Math.min(from.getX(), to.getX()), Math.min(from.getY(), to.getY()), Math.min(from.getZ(), to.getZ())); + final BlockPos blockpos1 = new BlockPos(Math.max(from.getX(), to.getX()), Math.max(from.getY(), to.getY()), Math.max(from.getZ(), to.getZ())); + return new Iterable() + { + public Iterator iterator() + { + return new AbstractIterator() + { + private BlockPos.MutableBlockPos theBlockPos = null; + protected BlockPos.MutableBlockPos computeNext() + { + if (this.theBlockPos == null) + { + this.theBlockPos = new BlockPos.MutableBlockPos(blockpos.getX(), blockpos.getY(), blockpos.getZ()); + return this.theBlockPos; + } + else if (this.theBlockPos.equals(blockpos1)) + { + return (BlockPos.MutableBlockPos)this.endOfData(); + } + else + { + int i = this.theBlockPos.getX(); + int j = this.theBlockPos.getY(); + int k = this.theBlockPos.getZ(); + + if (i < blockpos1.getX()) + { + ++i; + } + else if (j < blockpos1.getY()) + { + i = blockpos.getX(); + ++j; + } + else if (k < blockpos1.getZ()) + { + i = blockpos.getX(); + j = blockpos.getY(); + ++k; + } + + this.theBlockPos.x = i; + this.theBlockPos.y = j; + this.theBlockPos.z = k; + return this.theBlockPos; + } + } + }; + } + }; + } + + /** + * Returns a version of this BlockPos that is guaranteed to be Immutable. + * In most cases this will return 'this', but if 'this' is an instance of + * MutableBlockPos it will return a new instance of BlockPos with the same values. + * + * When storing a parameter given to you for an extended period of time, make sure you + * use this in case the value is changed internally. + * + * @return An immutable BlockPos. + */ + public BlockPos getImmutable() + { + return this; + } + + public static final class MutableBlockPos extends BlockPos + { + /** Mutable X Coordinate */ + private int x; + /** Mutable Y Coordinate */ + private int y; + /** Mutable Z Coordinate */ + private int z; + + public MutableBlockPos() + { + this(0, 0, 0); + } + + public MutableBlockPos(int x_, int y_, int z_) + { + super(0, 0, 0); + this.x = x_; + this.y = y_; + this.z = z_; + } + + /** + * Get the X coordinate + */ + public int getX() + { + return this.x; + } + + /** + * Get the Y coordinate + */ + public int getY() + { + return this.y; + } + + /** + * Get the Z coordinate + */ + public int getZ() + { + return this.z; + } + + /** + * Set the values + * + * @param xIn The X value + * @param yIn The Y value + * @param zIn The Z value + */ + public BlockPos.MutableBlockPos set(int xIn, int yIn, int zIn) + { + this.x = xIn; + this.y = yIn; + this.z = zIn; + return this; + } + + @Override public BlockPos getImmutable() { return new BlockPos(this); } + } +} \ No newline at end of file From f9bdc66956ac0ee19ef804628db5b6c52fee7eaf Mon Sep 17 00:00:00 2001 From: KAMKEEL Date: Sun, 13 Jun 2021 16:22:06 -0400 Subject: [PATCH 2/5] Flying Tests --- debug.log | 14 +++ src/main/java/noppes/npcs/DataAI.java | 3 + .../noppes/npcs/entity/EntityNPCFlying.java | 101 ++++++++++++++++++ .../npcs/entity/EntityNPCInterface.java | 65 ++++++----- 4 files changed, 149 insertions(+), 34 deletions(-) create mode 100644 debug.log create mode 100644 src/main/java/noppes/npcs/entity/EntityNPCFlying.java diff --git a/debug.log b/debug.log new file mode 100644 index 000000000..06b228e58 --- /dev/null +++ b/debug.log @@ -0,0 +1,14 @@ +[0514/203945.010:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0514/203945.039:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0514/203945.047:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0514/205447.662:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0514/205458.151:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0514/205458.162:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0514/205458.186:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/004913.901:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/004914.692:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/004914.711:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/004914.724:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/011427.812:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/011427.829:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. +[0515/011427.838:WARNING:dns_config_service_win.cc(668)] Failed to read DnsConfig. diff --git a/src/main/java/noppes/npcs/DataAI.java b/src/main/java/noppes/npcs/DataAI.java index cb1b58a45..a3ec8e966 100644 --- a/src/main/java/noppes/npcs/DataAI.java +++ b/src/main/java/noppes/npcs/DataAI.java @@ -32,6 +32,9 @@ public class DataAI { public EnumNavType tacticalVariant = EnumNavType.Default; public int useRangeMelee = 0; public int tacticalRadius = 8; + + // Fly Change + public int movementType = 0; public EnumAnimation animationType = EnumAnimation.NONE; public EnumStandingType standingType = EnumStandingType.RotateBody; diff --git a/src/main/java/noppes/npcs/entity/EntityNPCFlying.java b/src/main/java/noppes/npcs/entity/EntityNPCFlying.java new file mode 100644 index 000000000..8db2a4418 --- /dev/null +++ b/src/main/java/noppes/npcs/entity/EntityNPCFlying.java @@ -0,0 +1,101 @@ +package noppes.npcs.entity; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; + +public abstract class EntityNPCFlying extends EntityNPCInterface { + + public EntityNPCFlying(World world) { + super(world); + } + + // FLY CHANGE [WIP] + +// @Override +// public boolean canFly(){ +// return ai.movementType == 1; +// } +// +// @Override +// public void fall(float distance) { +// if(!canFly()) +// super.fall(distance); +// } +// +// @Override +// protected void updateFallState(double p_180433_1_, boolean p_180433_3_) { +// if(!canFly()) +// super.updateFallState(p_180433_1_, p_180433_3_); +// } +// +// @Override +// public void moveEntityWithHeading(float p_70612_1_, float p_70612_2_){ +// if(!canFly()){ +// super.moveEntityWithHeading(p_70612_1_, p_70612_2_); +// return; +// } +// +// if (this.isInWater()){ +// this.moveFlying(p_70612_1_, p_70612_2_, 0.02F); +// this.moveEntity(this.motionX, this.motionY, this.motionZ); +// this.motionX *= 0.800000011920929D; +// this.motionY *= 0.800000011920929D; +// this.motionZ *= 0.800000011920929D; +// } +// else if (this.isInsideOfMaterial(Material.lava)){ +// this.moveFlying(p_70612_1_, p_70612_2_, 0.02F); +// this.moveEntity(this.motionX, this.motionY, this.motionZ); +// this.motionX *= 0.5D; +// this.motionY *= 0.5D; +// this.motionZ *= 0.5D; +// } +// else{ +// float f2 = 0.91F; +// +// if (this.onGround){ +// f2 = this.worldObj.getBlock((int)this.posX, (int)this.boundingBox.minY - 1, (int)this.posZ).slipperiness * 0.91F; +// } +// +// float f3 = 0.16277136F / (f2 * f2 * f2); +// this.moveFlying(p_70612_1_, p_70612_2_, this.onGround ? 0.1F * f3 : 0.02F); +// f2 = 0.91F; +// +// if (this.onGround){ +// f2 = this.worldObj.getBlock((int)this.posX, (int)this.boundingBox.minY - 1, (int)this.posZ).slipperiness * 0.91F; +// } +// +// this.moveEntity(this.motionX, this.motionY, this.motionZ); +// this.motionX *= (double)f2; +// this.motionY *= (double)f2; +// this.motionZ *= (double)f2; +// } +// +// this.prevLimbSwingAmount = this.limbSwingAmount; +// double d1 = this.posX - this.prevPosX; +// double d0 = this.posZ - this.prevPosZ; +// float f4 = MathHelper.sqrt_double(d1 * d1 + d0 * d0) * 4.0F; +// +// if (f4 > 1.0F){ +// f4 = 1.0F; +// } +// +// this.limbSwingAmount += (f4 - this.limbSwingAmount) * 0.4F; +// this.limbSwing += this.limbSwingAmount; +// } +// +// @Override +// public boolean isOnLadder(){ +// return false; +// } + + + + +} diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index e1f6e3956..6db3ebb14 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -21,17 +21,12 @@ import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.IRangedAttackMob; import net.minecraft.entity.NPCEntityHelper; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIBase; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILeapAtTarget; -import net.minecraft.entity.ai.EntityAIOpenDoor; -import net.minecraft.entity.ai.EntityAIRestrictSun; -import net.minecraft.entity.ai.EntityAITasks; +import net.minecraft.entity.ai.*; import net.minecraft.entity.ai.EntityAITasks.EntityAITaskEntry; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.passive.EntityBat; @@ -43,6 +38,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.pathfinding.PathNavigate; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.AxisAlignedBB; @@ -74,31 +70,11 @@ import noppes.npcs.NoppesUtilServer; import noppes.npcs.NpcDamageSource; import noppes.npcs.Server; import noppes.npcs.VersionCompatibility; -import noppes.npcs.ai.EntityAIAmbushTarget; -import noppes.npcs.ai.EntityAIAnimation; -import noppes.npcs.ai.EntityAIAttackTarget; -import noppes.npcs.ai.EntityAIAvoidTarget; -import noppes.npcs.ai.EntityAIBustDoor; -import noppes.npcs.ai.EntityAIDodgeShoot; -import noppes.npcs.ai.EntityAIFindShade; -import noppes.npcs.ai.EntityAIFollow; -import noppes.npcs.ai.EntityAIJob; -import noppes.npcs.ai.EntityAILook; +import noppes.npcs.ai.*; import noppes.npcs.ai.EntityAIMoveIndoors; -import noppes.npcs.ai.EntityAIMovingPath; -import noppes.npcs.ai.EntityAIOrbitTarget; import noppes.npcs.ai.EntityAIPanic; -import noppes.npcs.ai.EntityAIRangedAttack; -import noppes.npcs.ai.EntityAIReturn; -import noppes.npcs.ai.EntityAIRole; -import noppes.npcs.ai.EntityAISprintToTarget; -import noppes.npcs.ai.EntityAIStalkTarget; -import noppes.npcs.ai.EntityAITransform; import noppes.npcs.ai.EntityAIWander; import noppes.npcs.ai.EntityAIWatchClosest; -import noppes.npcs.ai.EntityAIWaterNav; -import noppes.npcs.ai.EntityAIWorldLines; -import noppes.npcs.ai.EntityAIZigZagTarget; import noppes.npcs.ai.selector.NPCAttackSelector; import noppes.npcs.ai.target.EntityAIClearTarget; import noppes.npcs.ai.target.EntityAIClosestTarget; @@ -186,6 +162,10 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti public boolean updateClient = false; public boolean updateAI = false; + // Fly Change + protected EntityMoveHelper moveHelper; + protected PathNavigate navigator; + public EntityNPCInterface(World world) { super(world); try{ @@ -612,7 +592,7 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti if (worldObj == null || worldObj.isRemote) return; aiLeap = aiAttackTarget = aiResponse = aiSprint = aiRange = null; - + clearTasks(tasks); clearTasks(targetTasks); IEntitySelector attackEntitySelector = new NPCAttackSelector(this); @@ -621,8 +601,18 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti this.targetTasks.addTask(2, new EntityAIClosestTarget(this, EntityLivingBase.class, 4, this.ai.directLOS, false, attackEntitySelector)); this.targetTasks.addTask(3, new EntityAIOwnerHurtByTarget(this)); this.targetTasks.addTask(4, new EntityAIOwnerHurtTarget(this)); - - this.tasks.addTask(0, new EntityAIWaterNav(this)); + + + if(canFly()){ + this.moveHelper = new FlyingMoveHelper(this); + this.navigator = new PathNavigateFlying(this, worldObj); + } + else{ + this.moveHelper = new EntityMoveHelper(this); + this.navigator = new PathNavigateGround(this, worldObj); + this.tasks.addTask(0, new EntityAIWaterNav(this)); + } + // this.tasks.addTask(0, new EntityAIWaterNav(this)); this.taskCount = 1; this.doorInteractType(); this.seekShelter(); @@ -709,7 +699,9 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti /* * Branch task function for adjusting NPC door interactivity */ - public void doorInteractType(){ + public void doorInteractType(){ + if(canFly()) //currently flying does not support opening doors + return; EntityAIBase aiDoor = null; if (this.ai.doorInteract == 1) { @@ -732,7 +724,8 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti } else if (this.ai.findShelter == 1) { - this.tasks.addTask(this.taskCount++, new EntityAIRestrictSun(this)); + if(!canFly()) // doesnt work when flying + this.tasks.addTask(this.taskCount++, new EntityAIRestrictSun(this)); this.tasks.addTask(this.taskCount++, new EntityAIFindShade(this)); } } @@ -1574,7 +1567,11 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti public boolean canBeCollidedWith(){ return !isKilled(); } - + + public boolean canFly(){ + return false; + } + public EntityAIRangedAttack getRangedTask(){ return this.aiRange; } From 65eeca72cf156bb673e00ab4caa6fddadaa0bc97 Mon Sep 17 00:00:00 2001 From: KAMKEEL Date: Sun, 13 Jun 2021 16:24:15 -0400 Subject: [PATCH 3/5] Commenting out Fly Changes for Build --- src/main/java/noppes/npcs/DataAI.java | 2 +- .../npcs/entity/EntityNPCInterface.java | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/noppes/npcs/DataAI.java b/src/main/java/noppes/npcs/DataAI.java index a3ec8e966..cf0c00a88 100644 --- a/src/main/java/noppes/npcs/DataAI.java +++ b/src/main/java/noppes/npcs/DataAI.java @@ -34,7 +34,7 @@ public class DataAI { public int tacticalRadius = 8; // Fly Change - public int movementType = 0; +// public int movementType = 0; public EnumAnimation animationType = EnumAnimation.NONE; public EnumStandingType standingType = EnumStandingType.RotateBody; diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index 6db3ebb14..d77094d87 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -163,8 +163,8 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti public boolean updateAI = false; // Fly Change - protected EntityMoveHelper moveHelper; - protected PathNavigate navigator; +// protected EntityMoveHelper moveHelper; +// protected PathNavigate navigator; public EntityNPCInterface(World world) { super(world); @@ -603,15 +603,15 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti this.targetTasks.addTask(4, new EntityAIOwnerHurtTarget(this)); - if(canFly()){ - this.moveHelper = new FlyingMoveHelper(this); - this.navigator = new PathNavigateFlying(this, worldObj); - } - else{ - this.moveHelper = new EntityMoveHelper(this); - this.navigator = new PathNavigateGround(this, worldObj); +// if(canFly()){ +// this.moveHelper = new FlyingMoveHelper(this); +// this.navigator = new PathNavigateFlying(this, worldObj); +// } +// else{ +// this.moveHelper = new EntityMoveHelper(this); +// this.navigator = new PathNavigateGround(this, worldObj); this.tasks.addTask(0, new EntityAIWaterNav(this)); - } +// } // this.tasks.addTask(0, new EntityAIWaterNav(this)); this.taskCount = 1; this.doorInteractType(); From f155ef24813a7c66b51ffa562f8029a8c9c98ad9 Mon Sep 17 00:00:00 2001 From: KAMKEEL Date: Sun, 13 Jun 2021 16:35:53 -0400 Subject: [PATCH 4/5] Fixed Staff Bug Corrected the Staff Crash issue --- .../npcs/entity/EntityMagicProjectile.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/noppes/npcs/entity/EntityMagicProjectile.java b/src/main/java/noppes/npcs/entity/EntityMagicProjectile.java index 04b53c8a7..a09acbac5 100644 --- a/src/main/java/noppes/npcs/entity/EntityMagicProjectile.java +++ b/src/main/java/noppes/npcs/entity/EntityMagicProjectile.java @@ -9,23 +9,28 @@ import net.minecraft.world.World; public class EntityMagicProjectile extends EntityProjectile{ private EntityPlayer player; private ItemStack equiped; + + public EntityMagicProjectile(World par1World){ + super(par1World); + } + public EntityMagicProjectile(World par1World, - EntityPlayer player, ItemStack item, boolean isNPC) { + EntityPlayer player, ItemStack item, boolean isNPC) { super(par1World, player, item, isNPC); - + this.player = player; this.equiped = player.inventory.getCurrentItem(); } @Override public void onUpdate(){ - if(player.inventory.getCurrentItem() != equiped) + if(!worldObj.isRemote && (player == null || player.inventory.getCurrentItem() != equiped)) this.setDead(); super.onUpdate(); } - + @Override - public String getCommandSenderName(){ - return StatCollector.translateToLocal("entity.throwableitem.name"); - } + public String getCommandSenderName(){ + return StatCollector.translateToLocal("entity.throwableitem.name"); + } } From 3a36be0ae463f040608d9e230cae152faa8c5f5b Mon Sep 17 00:00:00 2001 From: KAMKEEL Date: Sun, 13 Jun 2021 19:26:00 -0400 Subject: [PATCH 5/5] Added MarkovNameGenerator, Added Disable Body Part Feature Two New Features >> + Added Markov Name Generate + Corrected Hide Body Parts --- build.gradle | 2 +- .../java/nikedemos/markovnames/HashMap2D.java | 81 + src/main/java/nikedemos/markovnames/Main.java | 53 + .../markovnames/MarkovDictionary.java | 270 ++ .../markovnames/MarkovDictionarySPA.java | 41 + .../generators/MarkovAncientGreek.java | 58 + .../markovnames/generators/MarkovAztec.java | 31 + .../generators/MarkovCustomNPCsClassic.java | 40 + .../generators/MarkovGenerator.java | 46 + .../generators/MarkovJapanese.java | 51 + .../generators/MarkovOldNorse.java | 32 + .../markovnames/generators/MarkovRoman.java | 65 + .../markovnames/generators/MarkovSaami.java | 33 + .../markovnames/generators/MarkovSlavic.java | 59 + .../markovnames/generators/MarkovSpanish.java | 52 + .../markovnames/generators/MarkovWelsh.java | 50 + src/main/java/noppes/npcs/CustomNpcs.java | 27 +- src/main/java/noppes/npcs/DataDisplay.java | 76 +- .../java/noppes/npcs/ModelDataShared.java | 11 +- .../noppes/npcs/client/gui/SubGuiNpcName.java | 63 + .../client/gui/mainmenu/GuiNpcDisplay.java | 35 +- .../npcs/client/gui/model/GuiModelArms.java | 11 +- .../npcs/client/gui/model/GuiModelBody.java | 46 +- .../npcs/client/gui/model/GuiModelHead.java | 8 + .../npcs/client/gui/model/GuiModelLegs.java | 19 +- .../noppes/npcs/client/model/ModelMPM.java | 94 +- .../npcs/client/model/part/ModelSkirt.java | 5 + .../assets/customnpcs/lang/en_US.lang | 21 +- .../markovnames/ancient_greek_female.txt | 406 +++ .../markovnames/ancient_greek_male.txt | 1567 +++++++++++ .../customnpcs/markovnames/aztec_given.txt | 133 + .../markovnames/customnpcs_classic.txt | 155 ++ .../markovnames/japanese_given_female.txt | 386 +++ .../markovnames/japanese_given_male.txt | 1189 +++++++++ .../markovnames/japanese_surnames.txt | 2341 +++++++++++++++++ .../markovnames/old_norse_bothgenders.txt | 1065 ++++++++ .../markovnames/roman_cognomina.txt | 1021 +++++++ .../customnpcs/markovnames/roman_nomina.txt | 542 ++++ .../markovnames/roman_praenomina.txt | 52 + .../markovnames/saami_bothgenders.txt | 722 +++++ .../customnpcs/markovnames/slavic_given.txt | 914 +++++++ .../markovnames/slavic_given_alt.txt | 914 +++++++ .../markovnames/spanish_given_female.txt | 310 +++ .../markovnames/spanish_given_male.txt | 381 +++ .../markovnames/spanish_surnames.txt | 550 ++++ .../customnpcs/markovnames/welsh_female.txt | 310 +++ .../customnpcs/markovnames/welsh_male.txt | 272 ++ 47 files changed, 14517 insertions(+), 93 deletions(-) create mode 100644 src/main/java/nikedemos/markovnames/HashMap2D.java create mode 100644 src/main/java/nikedemos/markovnames/Main.java create mode 100644 src/main/java/nikedemos/markovnames/MarkovDictionary.java create mode 100644 src/main/java/nikedemos/markovnames/MarkovDictionarySPA.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovAncientGreek.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovAztec.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovCustomNPCsClassic.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovGenerator.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovJapanese.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovOldNorse.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovRoman.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovSaami.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovSlavic.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovSpanish.java create mode 100644 src/main/java/nikedemos/markovnames/generators/MarkovWelsh.java create mode 100644 src/main/java/noppes/npcs/client/gui/SubGuiNpcName.java create mode 100644 src/main/resources/assets/customnpcs/markovnames/ancient_greek_female.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/ancient_greek_male.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/aztec_given.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/customnpcs_classic.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/japanese_given_female.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/japanese_given_male.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/japanese_surnames.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/old_norse_bothgenders.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/roman_cognomina.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/roman_nomina.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/roman_praenomina.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/saami_bothgenders.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/slavic_given.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/slavic_given_alt.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/spanish_given_female.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/spanish_given_male.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/spanish_surnames.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/welsh_female.txt create mode 100644 src/main/resources/assets/customnpcs/markovnames/welsh_male.txt diff --git a/build.gradle b/build.gradle index beeb1c55a..fc537f3be 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript { apply plugin: 'forge' -version = "1.01" +version = "1.2" group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "CustomNPC-Plus" diff --git a/src/main/java/nikedemos/markovnames/HashMap2D.java b/src/main/java/nikedemos/markovnames/HashMap2D.java new file mode 100644 index 000000000..5b0ec2000 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/HashMap2D.java @@ -0,0 +1,81 @@ +package nikedemos.markovnames; + +import java.util.HashMap; +import java.util.Map; + +public class HashMap2D { + +public final Map> mMap; + +/* + https://stackoverflow.com/a/10299689/9355344 + */ + +public HashMap2D() { + mMap = new HashMap>(); +} + +/** + * Associates the specified value with the specified keys in this map (optional operation). If the map previously + * contained a mapping for the key, the old value is replaced by the specified value. + * + * @param key1 + * the first key + * @param key2 + * the second key + * @param value + * the value to be set + * @return the value previously associated with (key1,key2), or null if none + * @see Map#put(Object, Object) + */ +public T3 put(T1 key1, T2 key2, T3 value) { + Map map; + if (mMap.containsKey(key1)) { + map = mMap.get(key1); + } else { + map = new HashMap(); + mMap.put(key1, map); + } + + return map.put(key2, value); +} + +/** + * Returns the value to which the specified key is mapped, or null if this map contains no mapping for + * the key. + * + * @param key1 + * the first key whose associated value is to be returned + * @param key2 + * the second key whose associated value is to be returned + * @return the value to which the specified key is mapped, or null if this map contains no mapping for + * the key + * @see Map#get(Object) + */ +public T3 get(T1 key1, T2 key2) { + if (mMap.containsKey(key1)) { + return mMap.get(key1).get(key2); + } else { + return null; + } +} + +/** + * Returns true if this map contains a mapping for the specified key + * + * @param key1 + * the first key whose presence in this map is to be tested + * @param key2 + * the second key whose presence in this map is to be tested + * @return Returns true if this map contains a mapping for the specified key + * @see Map#containsKey(Object) + */ +public boolean containsKeys(T1 key1, T2 key2) { + return mMap.containsKey(key1) && mMap.get(key1).containsKey(key2); +} + +public void clear() { + mMap.clear(); +} + +} \ No newline at end of file diff --git a/src/main/java/nikedemos/markovnames/Main.java b/src/main/java/nikedemos/markovnames/Main.java new file mode 100644 index 000000000..ab9213842 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/Main.java @@ -0,0 +1,53 @@ +package nikedemos.markovnames; + +import nikedemos.markovnames.generators.*; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map.Entry; + +public class Main { + + public static final int GENDER_RANDOM=0; + public static final int GENDER_MALE=1; + public static final int GENDER_FEMALE=2; + + public static HashMap GENERATORS = new HashMap(); + + public static void main(String[] args){ + + //all the generators neatly in one HashMap, so you can iterate or w/e + + GENERATORS.put("ROMAN", new MarkovRoman(3)); + GENERATORS.put("JAPANESE", new MarkovJapanese(4)); + GENERATORS.put("SLAVIC", new MarkovSlavic(3)); + GENERATORS.put("WELSH", new MarkovWelsh(3)); + GENERATORS.put("SAAMI", new MarkovSaami(3)); + GENERATORS.put("OLDNORSE", new MarkovOldNorse(4)); + GENERATORS.put("ANCIENTGREEK", new MarkovAncientGreek(3)); + GENERATORS.put("AZTEC", new MarkovAztec(3)); + + //iterate through generators, generate 5 male and 5 female names, move on to the next + Iterator> g = GENERATORS.entrySet().iterator(); + + while (g.hasNext()) { + Entry pair = (Entry) g.next(); + + System.out.println("==="+pair.getKey()+"==="); + + for (int i=0; i<16; i++) + { + if (i==0) + System.out.println("GENTLEMEN-----------"); + int gender = i<8 ? 1 : 2; + String random_name = pair.getValue().fetch(gender); + System.out.println(random_name); + + if (i==15) //extra padding + System.out.println("\n"); + else if (i==7) //separate genders + System.out.println("LADIES--------------"); + } + } + } +} diff --git a/src/main/java/nikedemos/markovnames/MarkovDictionary.java b/src/main/java/nikedemos/markovnames/MarkovDictionary.java new file mode 100644 index 000000000..b9f7eeaba --- /dev/null +++ b/src/main/java/nikedemos/markovnames/MarkovDictionary.java @@ -0,0 +1,270 @@ +package nikedemos.markovnames; + +import net.minecraft.util.ResourceLocation; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.ModContainer; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Random; + +public class MarkovDictionary { + private Random rng; + private int sequenceLen = 3; + + private HashMap2D occurrences = new HashMap2D(); + + public MarkovDictionary(String dictionary, int seqlen, Random rng) { + this.rng = rng; + + try { + applyDictionary(dictionary, seqlen); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public MarkovDictionary(String dictionary, int seqlen) { + this(dictionary, seqlen, new Random()); + } + + public MarkovDictionary(String dictionary) { + this(dictionary, 3, new Random()); // 3 is the default, anyway + } + + public MarkovDictionary(String dictionary, Random rng) { + this(dictionary, 3, rng); // 3 is the default, anyway + } + + // Blatantly copied from EnderIO: + // https://github.com/SleepyTrousers/EnderIO/blob/master/enderio-base/src/main/java/crazypants/enderio/base/config/recipes/RecipeFactory.java#L44-L57 + // Thanks again for your help, Henry Loenwind! + + private InputStream getResource(ResourceLocation resourceLocation) { + final ModContainer container = Loader.instance().activeModContainer(); + if (container != null) { + final String resourcePath = String.format("/%s/%s/%s", "assets", resourceLocation.getResourceDomain(), + resourceLocation.getResourcePath()); + InputStream resourceAsStream = null; + + try { + resourceAsStream = container.getMod().getClass().getResourceAsStream(resourcePath); + } catch (Exception e) { + e.printStackTrace(); + } + + if (resourceAsStream != null) { + return resourceAsStream; + } else { + throw new RuntimeException("Could not find resource " + resourceLocation); + } + } else { + throw new RuntimeException("Failed to find current mod while looking for resource " + resourceLocation); + } + } + + public String getCapitalized(String str) { + if (str == null || str.isEmpty()) + return str; + char[] chars = str.toCharArray(); + chars[0] = Character.toUpperCase(chars[0]); + return new String(chars); + } + + public static String readFile(String path) throws IOException { + byte[] encoded = Files.readAllBytes(Paths.get(path)); + return new String(encoded, StandardCharsets.UTF_8); + } + + public void incrementSafe(String str1, String str2) { + // so for instance, "_DUP_AUX", "_TOTAL" will count how many "DUP" seqCurrs we have + if (occurrences.containsKeys(str1, str2)) + { + int curr = occurrences.get(str1, str2).intValue(); + occurrences.put(str1, str2, Integer.valueOf(curr + 1)); + } else { + occurrences.put(str1, str2, Integer.valueOf(1)); + } + } + + public String generateWord() { + + // let's pick the first element, from which further picking shall proceed. + // first, we need to know how many top-level sequences (sequenceLen length) + // strings + // we have. So just take into account those surrounded by "_" - and count them. + // From that we'll get the weights. + + int allEntries = 0; + + // first iteration: we count top level entries. There's just no other way. + Iterator>> i = occurrences.mMap.entrySet().iterator(); + + while (i.hasNext()) { + Entry> pair = (Entry>) i.next(); + + String k = pair.getKey(); + if (k.startsWith("_[") && k.endsWith("_")) // dealing with meta entry here + { + allEntries += occurrences.get(k, "_TOTAL_"); + } + } + if(allEntries == 0) { + return "Kamkeel"; //shouldnt happen + } + int topLevelEntries; + int randomNumber = rng.nextInt(allEntries); + + // ok, so how does this weighted random work? + // easy. Check if the randomNumber is LESS than + // topLevelEntries variable for that entry (see below). + // If it is, break the while loop - we got our first element, + // from which we will go further. Just remember to + // remove the underscores at both ends! + + Iterator>> it = occurrences.mMap.entrySet().iterator(); + + StringBuilder sequence = new StringBuilder(""); + + while (it.hasNext()) { + Entry> pair = (Entry>) it.next(); + + String k = pair.getKey(); + + if (k.startsWith("_[") && k.endsWith("_")) // dealing with meta entry here + { + topLevelEntries = occurrences.get(k, "_TOTAL_"); + + if (randomNumber < topLevelEntries) { + sequence.append(k.substring(1, sequenceLen + 1)); // removing the underscores + break; + } else { + // keep going + randomNumber -= topLevelEntries; + } + } + } + // great! now that we have the first element, time for some generic iterations. + // in a very similar manner. Basically - perform this loop till you encounter + // "]" at the end + StringBuilder word = new StringBuilder(""); + + word.append(sequence); // now we're gonna use firstElement to keep the sequence + while (sequence.charAt(sequence.length() - 1) != ']') { + // sequence is now your HashMap key for the 1st dimension. + // for that sequence: + // - get total elements that are not meta (not surrounded by underscores) + // and count their total occurrences + int subSize = 0; + + Iterator> j = occurrences.mMap.get(sequence.toString()).entrySet().iterator(); + + while (j.hasNext()) { + Entry entry = j.next(); + subSize += entry.getValue(); + } + + // and now, the last iterator, with a random, just like before + randomNumber = rng.nextInt(subSize); + + Iterator> k = occurrences.mMap.get(sequence.toString()).entrySet().iterator(); + + String chosen = ""; + + while (k.hasNext()) { + Entry entry = k.next(); + int occu = occurrences.get(sequence.toString(), entry.getKey()); + + if (randomNumber < occu) { + chosen = entry.getKey(); + break; + } else { // keep going! + randomNumber -= occu; + } + } + // now, append the word... + word.append(chosen); + + // delete the first character of the sequence, + // and also append it with chosen character. + // So if the Sequence is ABC, and chosen is D, + // it now becomes BCD. + sequence.delete(0, 1); + sequence.append(chosen); + // System.out.println("FINAL: "+sequence); + // System.out.println("CHOSEN: "+chosen); + + } + // and now remove the square brackets surrounding it. + return this.getPost(word.substring(1, word.length() - 1)); + } + + public String getPost(String str) { + return getCapitalized(str); + } + + public void applyDictionary(String dictionaryFile, int seqLen) throws IOException { + StringBuilder input = new StringBuilder(); + + ResourceLocation resource = new ResourceLocation("customnpcs:markovnames/" + dictionaryFile); + + BufferedReader readIn = new BufferedReader(new InputStreamReader(getResource(resource), "UTF-8")); + // Thread.currentThread().getContextClassLoader().getResourceAsStream("path/to/resource/file.ext"); + + for (String line = readIn.readLine(); line != null; line = readIn.readLine()) { + input.append(line).append(" "); + } + + readIn.close(); + + if (input.length() == 0) { + throw new RuntimeException("Resource was empty: + " + resource); + } + // if seqLen != this.sequenceLen, we must clear occurrences + + if (this.sequenceLen != seqLen) { + sequenceLen = seqLen; + this.occurrences.clear(); + } + + String input_str = '[' + input.toString().toLowerCase().replaceAll("[\\t\\n\\r\\s]+", "][") + ']'; + + int maxCursorPos = input_str.length() - 1 - sequenceLen; + + for (int i = 0; i <= maxCursorPos; i++) { + String seqCurr = input_str.substring(i, i + (sequenceLen)); // i plus 2 characters next to it + String seqNext = input_str.substring(i + sequenceLen, i + sequenceLen + 1); // next character after that + incrementSafe(seqCurr, seqNext); + // aux counters + + StringBuilder meta = new StringBuilder("_").append(seqCurr).append("_"); + + // String aux1="_"+seqCurr+"_"; + incrementSafe(meta.toString(), "_TOTAL_"); + // String aux2="_"+seqNext+"_"; + // incrementSafe(aux1, aux2); + + // debug, feel free to uncomment + + /* + * System.out.println("<"+seqCurr+"><"+seqNext+"> => "+occurrences.get(seqCurr, + * seqNext)); + * System.out.println("<"+aux1+"><"+"_TOTAL_"+"> => "+occurrences.get(aux1, + * "_TOTAL_")); + * System.out.println("<"+aux1+"><"+aux2+"> => "+occurrences.get(aux1, aux2)); + * System.out.println(""); + */ + + } + // by now, we should have + + } +} diff --git a/src/main/java/nikedemos/markovnames/MarkovDictionarySPA.java b/src/main/java/nikedemos/markovnames/MarkovDictionarySPA.java new file mode 100644 index 000000000..bf7fcc61c --- /dev/null +++ b/src/main/java/nikedemos/markovnames/MarkovDictionarySPA.java @@ -0,0 +1,41 @@ +package nikedemos.markovnames; + +import java.util.Random; + +//used exclusively by the Spanish surname dictionary - because the capitalization is a little bit different +public class MarkovDictionarySPA extends MarkovDictionary { + + public MarkovDictionarySPA(String dictionary, int seqlen, Random rng) { + super(dictionary, seqlen, rng); + // TODO Auto-generated constructor stub + } + + @Override + public String getPost(String str) { + return getCapitalizedSPA(str); + } + + public String getCapitalizedSPA(String str) { + // for spanish capitalization + + String[] parts = str.split("#"); + + StringBuilder build = new StringBuilder(""); + + for (int p = 0; p < parts.length; p++) { + // capitalize this part, but only if it's not "de", "del", "la" or "los" + if (!parts[p].equals("de") && !parts[p].equals("del") && !parts[p].equals("la") + && !parts[p].equals("los")) { + parts[p] = getCapitalized(parts[p]); + } + + if (p > 0) // don't add spaces before the first part + build.append(" "); + + build.append(parts[p]); + } + + return build.toString(); + } + +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovAncientGreek.java b/src/main/java/nikedemos/markovnames/generators/MarkovAncientGreek.java new file mode 100644 index 000000000..7a0753397 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovAncientGreek.java @@ -0,0 +1,58 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovAncientGreek extends MarkovGenerator { + + public MarkovDictionary markov2; + + public MarkovAncientGreek(int seqlen, Random rng) + { + this.rng = rng; + this.markov = new MarkovDictionary("ancient_greek_male.txt",seqlen,rng); + this.markov2 = new MarkovDictionary("ancient_greek_female.txt",seqlen,rng); + } + + public MarkovAncientGreek(int seqlen) + { + this(seqlen,new Random()); + + } + + public MarkovAncientGreek() + { + this(3, new Random()); //3 seems best-suited for Welsh + } + + @Override + public String fetch(int gender) + { + + String seq1; + + //check the gender. + //0 = random gender, 1 = male, 2 = female + //if there's no gender specified (0), + //now it's time to pick it at random + // + if (gender==0) + { + gender = rng.nextBoolean()==true? 1 : 2; + } + + //now if it's 2 - a lady - feminize the 3 sequences + if (gender==2) + { + seq1 = markov2.generateWord(); + } + else + { + seq1 = markov.generateWord(); + } + + + return seq1; + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovAztec.java b/src/main/java/nikedemos/markovnames/generators/MarkovAztec.java new file mode 100644 index 000000000..d5d62637b --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovAztec.java @@ -0,0 +1,31 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovAztec extends MarkovGenerator { + + public MarkovAztec(int seqlen, Random rng) + { + this.rng = rng; + this.markov = new MarkovDictionary("aztec_given.txt",seqlen,rng); + } + + public MarkovAztec(int seqlen) + { + this(seqlen,new Random()); + + } + + public MarkovAztec() + { + this(3, new Random()); //3 seems best-suited for Aztec + } + + @Override + public String fetch(int gender) //Aztec names are genderless + { + return markov.generateWord(); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovCustomNPCsClassic.java b/src/main/java/nikedemos/markovnames/generators/MarkovCustomNPCsClassic.java new file mode 100644 index 000000000..16aed6cf3 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovCustomNPCsClassic.java @@ -0,0 +1,40 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +/* This implementation is made specifically for + * CustomNPCs, one of the best Minecraft mods ever... + * I'm a huge fan and would recommend it to anyone. + * Check it out if you haven't yet, at + * http://www.kodevelopment.nl/minecraft/category/customnpcs/ + * Minecraft 1.12.2 Java Edition + Forge required. + * Also, you have to like cats, it's in CNPCs EULA, I'm quite sure + */ + +public class MarkovCustomNPCsClassic extends MarkovGenerator { + + public MarkovCustomNPCsClassic(int seqlen, Random rng) + { + this.rng = rng; + this.markov = new MarkovDictionary("customnpcs_classic.txt",seqlen,rng); + } + + public MarkovCustomNPCsClassic(int seqlen) + { + this(seqlen,new Random()); + + } + + public MarkovCustomNPCsClassic() + { + this(3, new Random()); + } + + @Override + public String fetch(int gender) + { + return markov.generateWord(); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovGenerator.java b/src/main/java/nikedemos/markovnames/generators/MarkovGenerator.java new file mode 100644 index 000000000..43ecf4825 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovGenerator.java @@ -0,0 +1,46 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovGenerator { + + public MarkovDictionary markov; + public Random rng; + public String name; + public String symbol; + + public MarkovGenerator(int seqlen, Random rng) + { + this.rng = rng; + } + + public MarkovGenerator(int seqlen) + { + this(seqlen, new Random()); + } + + public MarkovGenerator() + { + this(3, new Random()); + } + + public String fetch(int gender) { + return stylize(markov.generateWord()); + } + + public String fetch() + { + return fetch(0); //0 = random gender, 1 = male, 2 = female + } + + public String stylize(String str) + { + return str; + } + + public String feminize(String element, boolean flag) { + return element; + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovJapanese.java b/src/main/java/nikedemos/markovnames/generators/MarkovJapanese.java new file mode 100644 index 000000000..a610a25c8 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovJapanese.java @@ -0,0 +1,51 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovJapanese extends MarkovGenerator { + public MarkovDictionary markov2; + public MarkovDictionary markov3; + + public MarkovJapanese(int seqlen, Random rng) { + this.rng = rng; + this.markov = new MarkovDictionary("japanese_surnames.txt", seqlen, rng); + this.markov2 = new MarkovDictionary("japanese_given_male.txt", seqlen, rng); + this.markov3 = new MarkovDictionary("japanese_given_female.txt", seqlen, rng); + } + + public MarkovJapanese(int seqlen) { + this(seqlen, new Random()); + + } + + public MarkovJapanese() { + this(4, new Random()); // 4 seems best suited for Japanese + } + + @Override + public String fetch(int gender) { + + StringBuilder name = new StringBuilder(markov.generateWord()); + name.append(" "); + + // check the gender. + // 0 = random gender, 1 = male, 2 = female + // if there's no gender specified (0), + // now it's time to pick it at random + // + if (gender == 0) { + gender = rng.nextBoolean() == true ? 1 : 2; + } + + if (gender == 2) { + name.append(markov3.generateWord()); + } + else { + name.append(markov2.generateWord()); + } + + return name.toString(); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovOldNorse.java b/src/main/java/nikedemos/markovnames/generators/MarkovOldNorse.java new file mode 100644 index 000000000..b26db87ec --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovOldNorse.java @@ -0,0 +1,32 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovOldNorse extends MarkovGenerator { + + public MarkovDictionary markov2; + + public MarkovOldNorse(int seqlen, Random rng) + { + this.rng = rng; + this.markov = new MarkovDictionary("old_norse_bothgenders.txt",seqlen,rng); + } + + public MarkovOldNorse(int seqlen) + { + this(seqlen,new Random()); + } + + public MarkovOldNorse() + { + this(4, new Random()); //4 seems best-suited for Old Norse + } + + @Override + public String fetch(int gender) //Old Norse names are genderless + { + return markov.generateWord(); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovRoman.java b/src/main/java/nikedemos/markovnames/generators/MarkovRoman.java new file mode 100644 index 000000000..86c8dca25 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovRoman.java @@ -0,0 +1,65 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovRoman extends MarkovGenerator { + public MarkovDictionary markov2; + public MarkovDictionary markov3; + + public MarkovRoman(int seqlen, Random rng) { + this.rng = rng; + this.markov = new MarkovDictionary("roman_praenomina.txt", seqlen, rng); + this.markov2 = new MarkovDictionary("roman_nomina.txt", seqlen, rng); + this.markov3 = new MarkovDictionary("roman_cognomina.txt", seqlen, rng); + } + + public MarkovRoman(int seqlen) { + this(seqlen, new Random()); + + } + + public MarkovRoman() { + this(3, new Random()); + } + + @Override + public String feminize(String element, boolean flag) { + // change "us" into "a" and "o" at the end into "a" + if (element.endsWith("us")) { + element = element.substring(0, element.length() - 2) + "a"; + } + else if (element.endsWith("o")) { + element = element.substring(0, element.length() - 2) + "a"; + } + + return element; + } + + @Override + public String fetch(int gender) { + + String seq1 = markov.generateWord(); + String seq2 = markov2.generateWord(); + String seq3 = markov3.generateWord(); + + // check the gender. + // 0 = random gender, 1 = male, 2 = female + // if there's no gender specified (0), + // now it's time to pick it at random + // + if (gender == 0) { + gender = rng.nextBoolean() == true ? 1 : 2; + } + + // now if it's 2 - a lady - feminize the 3 sequences + if (gender == 2) { + seq1 = feminize(seq1, false); + seq2 = feminize(seq2, false); + seq3 = feminize(seq3, true); + } + + return (new StringBuilder(seq1).append(" ").append(seq2).append(" ").append(seq3).toString()); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovSaami.java b/src/main/java/nikedemos/markovnames/generators/MarkovSaami.java new file mode 100644 index 000000000..8989d5f75 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovSaami.java @@ -0,0 +1,33 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovSaami extends MarkovGenerator { + + public MarkovDictionary markov2; + + public MarkovSaami(int seqlen, Random rng) + { + this.rng = rng; + this.markov = new MarkovDictionary("saami_bothgenders.txt",seqlen,rng); + } + + public MarkovSaami(int seqlen) + { + this(seqlen,new Random()); + + } + + public MarkovSaami() + { + this(3, new Random()); //3 seems best-suited for Saami + } + + @Override + public String fetch(int gender) //Saami names are genderless + { + return markov.generateWord(); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovSlavic.java b/src/main/java/nikedemos/markovnames/generators/MarkovSlavic.java new file mode 100644 index 000000000..21d344a82 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovSlavic.java @@ -0,0 +1,59 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovSlavic extends MarkovGenerator { + + public MarkovSlavic(int seqlen, Random rng) { + this.rng = rng; + this.markov = new MarkovDictionary("slavic_given.txt", seqlen, rng); + } + + public MarkovSlavic(int seqlen) { + this(seqlen, new Random()); + + } + + public MarkovSlavic() { + this(3, new Random()); // 3 seems best-suited for Slavic + } + + @Override + public String feminize(String element, boolean flag) { + // add "a" at the end, if there isn't one + String lastChar = element.substring(element.length() - 1); + + if (element.endsWith("o")) { + element = element.substring(0, element.length() - 1) + "a"; + } + else if (!lastChar.endsWith("a")) { + element += "a"; + } + + return element; + } + + @Override + public String fetch(int gender) { + + String seq1 = markov.generateWord(); + + // check the gender. + // 0 = random gender, 1 = male, 2 = female + // if there's no gender specified (0), + // now it's time to pick it at random + // + if (gender == 0) { + gender = rng.nextBoolean() == true ? 1 : 2; + } + + // now if it's 2 - a lady - feminize the 3 sequences + if (gender == 2) { + seq1 = feminize(seq1, false); + } + + return seq1; + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovSpanish.java b/src/main/java/nikedemos/markovnames/generators/MarkovSpanish.java new file mode 100644 index 000000000..e8770e0ef --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovSpanish.java @@ -0,0 +1,52 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; +import nikedemos.markovnames.MarkovDictionarySPA; + +import java.util.Random; + +public class MarkovSpanish extends MarkovGenerator { + public MarkovDictionary markov2; + public MarkovDictionary markov3; + + public MarkovSpanish(int seqlen, Random rng) { + this.rng = rng; + this.markov = new MarkovDictionary("spanish_given_male.txt", seqlen, rng); + this.markov2 = new MarkovDictionary("spanish_given_female.txt", seqlen, rng); + this.markov3 = new MarkovDictionarySPA("spanish_surnames.txt", seqlen, rng); + } + + public MarkovSpanish(int seqlen) { + this(seqlen, new Random()); + } + + public MarkovSpanish() { + this(3, new Random()); + } + + @Override + public String fetch(int gender) { + String giv = ""; + + String sur = markov3.generateWord(); + + // check the gender. + // 0 = random gender, 1 = male, 2 = female + // if there's no gender specified (0), + // now it's time to pick it at random + // + if (gender == 0) { + gender = rng.nextBoolean() == true ? 1 : 2; + } + + if (gender == 1) { + giv = markov.generateWord(); + } + else { + giv = markov2.generateWord(); + + } + + return new StringBuilder(giv).append(" ").append(sur).toString(); + } +} diff --git a/src/main/java/nikedemos/markovnames/generators/MarkovWelsh.java b/src/main/java/nikedemos/markovnames/generators/MarkovWelsh.java new file mode 100644 index 000000000..2ad00bf84 --- /dev/null +++ b/src/main/java/nikedemos/markovnames/generators/MarkovWelsh.java @@ -0,0 +1,50 @@ +package nikedemos.markovnames.generators; + +import nikedemos.markovnames.MarkovDictionary; + +import java.util.Random; + +public class MarkovWelsh extends MarkovGenerator { + + public MarkovDictionary markov2; + + public MarkovWelsh(int seqlen, Random rng) { + this.rng = rng; + this.markov = new MarkovDictionary("welsh_male.txt", seqlen, rng); + this.markov2 = new MarkovDictionary("welsh_female.txt", seqlen, rng); + } + + public MarkovWelsh(int seqlen) { + this(seqlen, new Random()); + + } + + public MarkovWelsh() { + this(3, new Random()); // 3 seems best-suited for Welsh + } + + @Override + public String fetch(int gender) { + + String seq1; + + // check the gender. + // 0 = random gender, 1 = male, 2 = female + // if there's no gender specified (0), + // now it's time to pick it at random + // + if (gender == 0) { + gender = rng.nextBoolean() == true ? 1 : 2; + } + + // now if it's 2 - a lady - feminize the 3 sequences + if (gender == 2) { + seq1 = markov2.generateWord(); + } + else { + seq1 = markov.generateWord(); + } + + return seq1; + } +} diff --git a/src/main/java/noppes/npcs/CustomNpcs.java b/src/main/java/noppes/npcs/CustomNpcs.java index c13c4b60d..90b42ebf6 100644 --- a/src/main/java/noppes/npcs/CustomNpcs.java +++ b/src/main/java/noppes/npcs/CustomNpcs.java @@ -7,11 +7,7 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerAboutToStartEvent; -import cpw.mods.fml.common.event.FMLServerStartedEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.event.FMLServerStoppedEvent; +import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.network.FMLEventChannel; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; @@ -26,6 +22,7 @@ import net.minecraft.entity.EntityList; import net.minecraft.server.MinecraftServer; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.MinecraftForge; +import nikedemos.markovnames.generators.*; import noppes.npcs.config.ConfigLoader; import noppes.npcs.config.ConfigProp; import noppes.npcs.controllers.BankController; @@ -63,7 +60,7 @@ import noppes.npcs.entity.old.EntityNpcNagaFemale; import noppes.npcs.entity.old.EntityNpcNagaMale; import noppes.npcs.entity.old.EntityNpcSkeleton; -@Mod(modid = "customnpcs", name = "CustomNpcs", version = "1.0.1") +@Mod(modid = "customnpcs", name = "CustomNpcs", version = "1.2") public class CustomNpcs { @ConfigProp(info = "Disable Chat Bubbles") @@ -142,6 +139,8 @@ public class CustomNpcs { public static ConfigLoader Config; + public static final MarkovGenerator[] MARKOV_GENERATOR = new MarkovGenerator[10]; + public CustomNpcs() { instance = this; } @@ -218,6 +217,22 @@ public class CustomNpcs { PixelmonHelper.load(); } + @EventHandler + public void load(FMLInitializationEvent ev) { + + MARKOV_GENERATOR[0] = new MarkovRoman(3); + MARKOV_GENERATOR[1] = new MarkovJapanese(4); + MARKOV_GENERATOR[2] = new MarkovSlavic(3); + MARKOV_GENERATOR[3] = new MarkovWelsh(3); + MARKOV_GENERATOR[4] = new MarkovSaami(3); + MARKOV_GENERATOR[5] = new MarkovOldNorse(4); + MARKOV_GENERATOR[6] = new MarkovAncientGreek(3); + MARKOV_GENERATOR[7] = new MarkovAztec(3); + MARKOV_GENERATOR[8] = new MarkovCustomNPCsClassic(3); + MARKOV_GENERATOR[9] = new MarkovSpanish(3); + + } + @EventHandler public void setAboutToStart(FMLServerAboutToStartEvent event) { ChunkController.instance.clear(); diff --git a/src/main/java/noppes/npcs/DataDisplay.java b/src/main/java/noppes/npcs/DataDisplay.java index 3d4709d21..0bac810dd 100644 --- a/src/main/java/noppes/npcs/DataDisplay.java +++ b/src/main/java/noppes/npcs/DataDisplay.java @@ -19,6 +19,9 @@ public class DataDisplay { public String name; public String title = ""; + private int markovGeneratorId = 8; //roman,japanese,slavic,welsh,sami,oldnorse,ancientgreek,aztec,classic,spanish (0 - 9 inclusively) + private int markovGender = 0; //0:random, 1:male, 2:female + public byte skinType = 0; //0:normal, 1:player, 2:url, 3:url64 public String url = ""; @@ -42,6 +45,12 @@ public class DataDisplay { public DataDisplay(EntityNPCInterface npc){ this.npc = npc; + + /* + Implementing MarkovNames generator. You can blame this blunder on Nikedemos. + + Please refer to nikedemos.markovnames.generators.MarkovCustomNPCsClassic.java + String[] names = { "Noppes", "Noppes", "Noppes", "Noppes", "Atesson", "Rothcersul", "Achdranys", "Pegato", "Chald", "Gareld", "Nalworche", "Ineald", "Tia'kim", "Torerod", "Turturdar", @@ -52,23 +61,34 @@ public class DataDisplay { "Issraya", "Arisotura", "Honf", "Rilfom", "Estz", "Ghatroth", "Yosil", "Darage", "Aldny", "Tyltran", "Armos", "Loxiku", "Burhat", "Tinlt", "Ightyd", "Mia", - "Ken", "Karla", "Lily", "Carina", "Daniel", "Slater", "Zidane", "Valentine", "Eirina", - "Carnow", "Grave", "Shadow", "Drakken", "Kaoz", "Silk", "Drake", "Oldam", "Lynxx", "Lenyx", - "Winter", "Seth", "Apolitho", "Amethyst", "Ankin", "Seinkan", "Ayumu", "Sakamoto", "Divina", - "Div", "Magia", "Magnus", "Tiakono", "Ruin", "Hailinx", "Ethan", "Wate", "Carter", "William", + "Ken", "Karla", "Lily", "Carina", "Daniel", "Slater", "Zidane", "Valentine", "Eirina", + "Carnow", "Grave", "Shadow", "Drakken", "Kaoz", "Silk", "Drake", "Oldam", "Lynxx", "Lenyx", + "Winter", "Seth", "Apolitho", "Amethyst", "Ankin", "Seinkan", "Ayumu", "Sakamoto", "Divina", + "Div", "Magia", "Magnus", "Tiakono", "Ruin", "Hailinx", "Ethan", "Wate", "Carter", "William", "Brion", "Sparrow", "Basrrelen", "Gyaku", "Claire", "Crowfeather", "Blackwell", "Raven", "Farcri", - "Lucas", "Bangheart", "Kamoku", "Kyoukan", "Blaze", "Benjamin", "Larianne", "Kakaragon", - "Melancholy", "Epodyno", "Thanato", "Mika", "Dacks", "Ylander", "Neve", "Meadow", "Cuero", - "Embrera", "Eldamore", "Faolan", "Chim", "Nasu", "Kathrine", "Ariel", "Arei", "Demytrix", - "Kora", "Ava", "Larson", "Leonardo", "Wyrl", "Sakiama", "Lambton", "Kederath", "Malus", "Riplette", - "Andern", "Ezall", "Lucien", "Droco", "Cray", "Tymen", "Zenix", "Entranger", + "Lucas", "Bangheart", "Kamoku", "Kyoukan", "Blaze", "Benjamin", "Larianne", "Kakaragon", + "Melancholy", "Epodyno", "Thanato", "Mika", "Dacks", "Ylander", "Neve", "Meadow", "Cuero", + "Embrera", "Eldamore", "Faolan", "Chim", "Nasu", "Kathrine", "Ariel", "Arei", "Demytrix", + "Kora", "Ava", "Larson", "Leonardo", "Wyrl", "Sakiama", "Lambton", "Kederath", "Malus", "Riplette", + "Andern", "Ezall", "Lucien", "Droco", "Cray", "Tymen", "Zenix", "Entranger", "Saenorath", "Chris", "Christine", "Marble", "Mable", "Ross", "Rose", "Xalgan ", "Kennet", "Kamkeel" }; name = names[new Random().nextInt(names.length)]; + */ + + markovGeneratorId = new Random().nextInt(CustomNpcs.MARKOV_GENERATOR.length-1); + name = getRandomName(); + } - + + public String getRandomName() { + return CustomNpcs.MARKOV_GENERATOR[markovGeneratorId].fetch(markovGender); + } + public NBTTagCompound writeToNBT(NBTTagCompound nbttagcompound) { nbttagcompound.setString("Name", name); + nbttagcompound.setInteger("MarkovGeneratorId", markovGeneratorId); + nbttagcompound.setInteger("MarkovGender", markovGender); nbttagcompound.setString("Title", title); nbttagcompound.setString("SkinUrl", url); nbttagcompound.setString("Texture", texture); @@ -95,7 +115,10 @@ public class DataDisplay { return nbttagcompound; } public void readToNBT(NBTTagCompound nbttagcompound) { - name = nbttagcompound.getString("Name"); + setName(nbttagcompound.getString("Name")); + setMarkovGeneratorId(nbttagcompound.getInteger("MarkovGeneratorId")); + setMarkovGender(nbttagcompound.getInteger("MarkovGender")); + title = nbttagcompound.getString("Title"); url = nbttagcompound.getString("SkinUrl"); @@ -173,4 +196,35 @@ public class DataDisplay { npc.updateClient = true; } + public String getName(){ + return name; + } + + public void setName(String name){ + if(this.name.equals(name)) + return; + this.name = name; + npc.updateClient = true; + } + + public int getMarkovGender(){ + return markovGender; + } + + public void setMarkovGender(int gender) { + if(markovGender == gender) + return; + this.markovGender = ValueUtil.CorrectInt(gender, 0, 2); + } + + public int getMarkovGeneratorId(){ + return markovGeneratorId; + } + + public void setMarkovGeneratorId(int id) { + if(markovGeneratorId == id) + return; + this.markovGeneratorId = ValueUtil.CorrectInt(id, 0, CustomNpcs.MARKOV_GENERATOR.length-1); + } + } diff --git a/src/main/java/noppes/npcs/ModelDataShared.java b/src/main/java/noppes/npcs/ModelDataShared.java index eeb23c199..551cec14d 100644 --- a/src/main/java/noppes/npcs/ModelDataShared.java +++ b/src/main/java/noppes/npcs/ModelDataShared.java @@ -27,13 +27,18 @@ public class ModelDataShared{ private HashMap parts = new HashMap(); public byte breasts = 0; - + + // Enabled vs Disabled public byte headwear = 2; - public byte bodywear = 0; - public byte armwear = 0; public byte legwear = 0; + + // Hide Body Parts [0: None, 1: Both, 2: Right, 3: Left], + public byte hideHead = 0; + public byte hideBody = 0; + public byte hideArms = 0; + public byte hideLegs = 0; public NBTTagCompound writeToNBT(){ NBTTagCompound compound = new NBTTagCompound(); diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiNpcName.java b/src/main/java/noppes/npcs/client/gui/SubGuiNpcName.java new file mode 100644 index 000000000..ff9e0d7e9 --- /dev/null +++ b/src/main/java/noppes/npcs/client/gui/SubGuiNpcName.java @@ -0,0 +1,63 @@ +package noppes.npcs.client.gui; + +import net.minecraft.client.gui.GuiButton; +import noppes.npcs.DataDisplay; +import noppes.npcs.client.gui.mainmenu.GuiNpcDisplay; +import noppes.npcs.client.gui.util.*; + +public class SubGuiNpcName extends SubGuiInterface implements ITextfieldListener { + private DataDisplay display; + public SubGuiNpcName(DataDisplay display){ + this.display = display; + setBackground("menubg.png"); + xSize = 256; + ySize = 216; + closeOnEsc = true; + } + + @Override + public void initGui(){ + super.initGui(); + int y = guiTop + 4; + addButton(new GuiNpcButton(66, guiLeft + xSize - 24, y, 20, 20, "X")); + + addTextField(new GuiNpcTextField(0,this, fontRendererObj, guiLeft + 4, y += 50, 226, 20, display.name)); + this.addButton(new GuiButtonBiDirectional(1, guiLeft + 4, y += 22 , 200, 20, new String[] {"markov.roman.name", "markov.japanese.name", "markov.slavic.name", "markov.welsh.name", "markov.sami.name", "markov.oldNorse.name", "markov.ancientGreek.name", "markov.aztec.name", "markov.classicCNPCs.name", "markov.spanish.name"}, display.getMarkovGeneratorId())); + + this.addButton(new GuiButtonBiDirectional(2, guiLeft + 64, y += 22 , 120, 20, new String[] {"markov.gender.either", "markov.gender.male", "markov.gender.female"}, display.getMarkovGender())); + addLabel(new GuiNpcLabel(2,"markov.gender.name", guiLeft + 5, y + 5)); + + addButton(new GuiNpcButton(3, guiLeft + 4, y += 42, 70, 20, "markov.generate")); + } + + @Override + public void unFocused(GuiNpcTextField textfield) { + if(textfield.id == 0){ + if(!textfield.isEmpty()) + display.setName(textfield.getText()); + else + textfield.setText(display.getName()); + } + } + + @Override + protected void actionPerformed(GuiButton guibutton){ + GuiNpcButton button = (GuiNpcButton) guibutton; + + if(button.id == 1) { + display.setMarkovGeneratorId(button.getValue()); + } + if(button.id == 2) { + display.setMarkovGender(button.getValue()); + } + if(button.id == 3) { + String name = display.getRandomName(); + display.setName(name); + getTextField(0).setText(name); + ((GuiNpcDisplay)parent).nameText.setText(name); + } + if(button.id == 66){ + close(); + } + } +} diff --git a/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java b/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java index 7ed900b5c..bbabae2a4 100644 --- a/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java +++ b/src/main/java/noppes/npcs/client/gui/mainmenu/GuiNpcDisplay.java @@ -10,14 +10,9 @@ import noppes.npcs.client.NoppesUtil; import noppes.npcs.client.gui.GuiNPCTextures; import noppes.npcs.client.gui.GuiNpcTextureCloaks; import noppes.npcs.client.gui.GuiNpcTextureOverlays; +import noppes.npcs.client.gui.SubGuiNpcName; import noppes.npcs.client.gui.model.GuiCreationScreen; -import noppes.npcs.client.gui.util.GuiHoverText; -import noppes.npcs.client.gui.util.GuiNPCInterface2; -import noppes.npcs.client.gui.util.GuiNpcButton; -import noppes.npcs.client.gui.util.GuiNpcLabel; -import noppes.npcs.client.gui.util.GuiNpcTextField; -import noppes.npcs.client.gui.util.IGuiData; -import noppes.npcs.client.gui.util.ITextfieldListener; +import noppes.npcs.client.gui.util.*; import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityNPCInterface; @@ -25,6 +20,7 @@ import noppes.npcs.entity.EntityNPCInterface; public class GuiNpcDisplay extends GuiNPCInterface2 implements ITextfieldListener, IGuiData{ private DataDisplay display; + public GuiNpcTextField nameText; public GuiNpcDisplay(EntityNPCInterface npc) { super(npc,1); @@ -35,9 +31,20 @@ public class GuiNpcDisplay extends GuiNPCInterface2 implements ITextfieldListene public void initGui(){ super.initGui(); int y = guiTop + 4; - addLabel(new GuiNpcLabel(0,"gui.name", guiLeft + 5, y + 5)); - addTextField(new GuiNpcTextField(0,this, fontRendererObj, guiLeft + 50, y, 200, 20, display.name)); - this.addButton(new GuiNpcButton(0, guiLeft + 253, y , 110, 20, new String[]{"display.show","display.hide","display.showAttacking"} ,display.showName)); + + // Old Implementation +// addLabel(new GuiNpcLabel(0,"gui.name", guiLeft + 5, y + 5)); +// addTextField(new GuiNpcTextField(0,this, fontRendererObj, guiLeft + 50, y, 200, 20, display.name)); +// this.addButton(new GuiNpcButton(0, guiLeft + 253, y , 110, 20, new String[]{"display.show","display.hide","display.showAttacking"} ,display.showName)); + + addLabel(new GuiNpcLabel(0,"gui.name", guiLeft + 5, y + 5)); + nameText = new GuiNpcTextField(0,this, fontRendererObj, guiLeft + 50, y, 206, 20, display.name); + addTextField(nameText); + this.addButton(new GuiNpcButton(0, guiLeft + 253+52, y , 110, 20, new String[]{"display.show","display.hide","display.showAttacking"} ,display.showName)); + + + this.addButton(new GuiNpcButton(14, guiLeft + 259, y , 20, 20, Character.toString('\u21bb'))); + this.addButton(new GuiNpcButton(15, guiLeft + 259 + 22, y , 20, 20, Character.toString('\u22EE'))); y+=23; addLabel(new GuiNpcLabel(11,"gui.title", guiLeft + 5, y + 5)); @@ -163,6 +170,14 @@ public class GuiNpcDisplay extends GuiNPCInterface2 implements ITextfieldListene else if(button.id == 10){ display.showBossBar = (byte)button.getValue(); } + else if(button.id == 14){ + String name = display.getRandomName(); + display.setName(name); + getTextField(0).setText(name); + } + else if(button.id == 15){ + setSubGui(new SubGuiNpcName(display)); + } } @Override diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java index 41b4a053e..63b442847 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelArms.java @@ -10,8 +10,9 @@ import noppes.npcs.entity.EntityCustomNpc; public class GuiModelArms extends GuiModelInterface{ + private final String[] arrArm = new String[]{"gui.no","Both","Right","Left"}; private final String[] arrArmwear = new String[]{"gui.no","Both","Left","Right"}; - private final String[] arrParticles = new String[]{"gui.no","Both","Left","Right"}; + private final String[] arrClaws = new String[]{"gui.no","Both","Left","Right"}; private GuiScreen parent; public GuiModelArms(GuiScreen parent, EntityCustomNpc npc){ @@ -25,13 +26,16 @@ public class GuiModelArms extends GuiModelInterface{ super.initGui(); int y = guiTop + 20; + addButton(new GuiNpcButton(30, guiLeft + 50, y += 22, 70, 20, arrArm, playerdata.hideArms)); + addLabel(new GuiNpcLabel(30, "Hide", guiLeft, y + 5, 0xFFFFFF)); + if (npc.display.modelType == 1 || npc.display.modelType == 2) { addButton(new GuiNpcButton(8, guiLeft + 50, y += 22, 70, 20, arrArmwear, playerdata.armwear)); addLabel(new GuiNpcLabel(8, "Armwear", guiLeft, y + 5, 0xFFFFFF)); } ModelPartData claws = playerdata.getPartData("claws"); - addButton(new GuiNpcButton(0, guiLeft + 50, y += 22, 70, 20, arrParticles, claws == null?0:claws.type + 1)); + addButton(new GuiNpcButton(0, guiLeft + 50, y += 22, 70, 20, arrClaws, claws == null?0:claws.type + 1)); addLabel(new GuiNpcLabel(0, "Claws", guiLeft, y + 5, 0xFFFFFF)); if(claws != null) addButton(new GuiNpcButton(10, guiLeft + 122, y, 40, 20, claws.getColor())); @@ -46,6 +50,9 @@ public class GuiModelArms extends GuiModelInterface{ if(button.id == 8){ playerdata.armwear = (byte) button.getValue(); } + if(button.id == 30){ + playerdata.hideArms = (byte) button.getValue(); + } if(button.id == 0){ if(button.getValue() == 0) playerdata.removePart("claws"); diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java index a1f22ea7c..ff96f74b0 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java @@ -11,6 +11,7 @@ import noppes.npcs.entity.EntityCustomNpc; public class GuiModelBody extends GuiModelInterface{ private GuiScreen parent; + private final String[] arrBody = new String[]{"gui.no","gui.yes"}; private final String[] arrBodywear = new String[]{"gui.no","gui.yes"}; private final String[] arrWing = new String[]{"gui.no","Player","Type1","Type2","Type3","Type4","Type5","Type6","Type7","Type8","Type9", "Type10","Type11","Type12","Type13"}; @@ -31,6 +32,9 @@ public class GuiModelBody extends GuiModelInterface{ int y = guiTop + 20; + addButton(new GuiNpcButton(30, guiLeft + 50, y += 22, 70, 20, arrBody, playerdata.hideBody)); + addLabel(new GuiNpcLabel(30, "Hide", guiLeft, y + 5, 0xFFFFFF)); + if (npc.display.modelType == 1 || npc.display.modelType == 2) { addButton(new GuiNpcButton(8, guiLeft + 50, y += 22, 70, 20, arrBodywear, playerdata.bodywear)); addLabel(new GuiNpcLabel(8, "Bodywear", guiLeft, y + 5, 0xFFFFFF)); @@ -87,17 +91,27 @@ public class GuiModelBody extends GuiModelInterface{ return 0; } - private int getSkirtindex(ModelPartData skirt) { - if (skirt == null) - return 0; - if (skirt.type == 0) { - if (skirt.playerTexture) - return 1; - if (skirt.texture.contains("1")) - return 2; - } - return 0; - } + private int getSkirtindex(ModelPartData skirt) { + if(skirt == null) + return 0; + if(skirt.type == 0){ + if(skirt.playerTexture) + return 1; + if(skirt.texture.contains("1")) + return 2; + if(skirt.texture.contains("2")) + return 3; + if(skirt.texture.contains("3")) + return 4; + if(skirt.texture.contains("4")) + return 5; + if(skirt.texture.contains("5")) + return 6; + if(skirt.texture.contains("6")) + return 7; + } + return 0; + } private int getParticleIndex(ModelPartData particles) { if(particles == null) @@ -202,11 +216,11 @@ public class GuiModelBody extends GuiModelInterface{ if(value == 0) playerdata.removePart("skirt"); else{ - ModelPartData particles = playerdata.getOrCreatePart("skirt"); + ModelPartData skirt = playerdata.getOrCreatePart("skirt"); if(value == 1) - particles.setTexture("", 0); + skirt.setTexture("", 0); if(value == 2) - particles.setTexture("skirt/skirt1", 0); + skirt.setTexture("skirt/skirt1", 0); } initGui(); } @@ -215,6 +229,10 @@ public class GuiModelBody extends GuiModelInterface{ playerdata.bodywear = (byte) button.getValue(); } + if(button.id == 30){ + playerdata.hideBody = (byte) button.getValue(); + } + if(button.id == 11){ this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("wings"), npc)); } diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java index c29a52a0a..e35836c34 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java @@ -12,6 +12,7 @@ public class GuiModelHead extends GuiModelInterface{ private GuiScreen parent; + private final String[] arrHead = new String[]{"gui.no","gui.yes"}; private final String[] arrHeadwear = new String[]{"gui.no","gui.yes","Solid"}; private final String[] arrHair = new String[]{"gui.no","Player","Long","Thin","Stylish","Ponytail"}; private final String[] arrBeard = new String[]{"gui.no","Player","Standard","Viking","Long","Short"}; @@ -33,6 +34,9 @@ public class GuiModelHead extends GuiModelInterface{ int y = guiTop + 20; + addButton(new GuiNpcButton(30, guiLeft + 50, y += 22, 70, 20, arrHead, playerdata.hideHead)); + addLabel(new GuiNpcLabel(30, "Hide", guiLeft, y + 5, 0xFFFFFF)); + addButton(new GuiNpcButton(0, guiLeft + 50, y += 22, 70, 20, arrHeadwear, playerdata.headwear)); addLabel(new GuiNpcLabel(0, "Headwear", guiLeft, y + 5, 0xFFFFFF)); @@ -108,6 +112,10 @@ public class GuiModelHead extends GuiModelInterface{ playerdata.headwear = (byte) button.getValue(); } + if(button.id == 30){ + playerdata.hideHead = (byte) button.getValue(); + } + if(button.id == 1){ if(button.getValue() == 0) playerdata.removePart("hair"); diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java index d7f0221be..b0b6d6a2c 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java @@ -11,6 +11,7 @@ import noppes.npcs.entity.EntityCustomNpc; public class GuiModelLegs extends GuiModelInterface{ private GuiScreen parent; + private final String[] arrLeg = new String[]{"gui.no","Both","Right","Left"}; private final String[] arrLegwear = new String[]{"gui.no","Both","Left","Right"}; private final String[] arrLegs = new String[]{"gui.no","Player","Player Naga","Spider","Horse","Naga", "Mermaid", "Mermaid 2", "Digitigrade"}; private final String[] arrTail = new String[]{"gui.no","Player", "Player Dragon","Cat","Wolf","Horse","Dragon", "Squirrel", "Fin", "Rodent", "Feather"}; @@ -25,6 +26,9 @@ public class GuiModelLegs extends GuiModelInterface{ super.initGui(); int y = guiTop + 20; + addButton(new GuiNpcButton(30, guiLeft + 50, y += 22, 70, 20, arrLeg, playerdata.hideLegs)); + addLabel(new GuiNpcLabel(30, "Hide", guiLeft, y + 5, 0xFFFFFF)); + if (npc.display.modelType == 1 || npc.display.modelType == 2) { addButton(new GuiNpcButton(8, guiLeft + 50, y += 22, 70, 20, arrLegwear, playerdata.legwear)); addLabel(new GuiNpcLabel(8, "Legwear", guiLeft, y + 5, 0xFFFFFF)); @@ -47,23 +51,11 @@ public class GuiModelLegs extends GuiModelInterface{ return 5; if(data.type == 4) return 6; -// if(data.type == 6) -// return 7; if(data.type == 5) return 8; return data.type + 1; } -// private int getLegIndex(ModelPartData data) { -// if(!data.playerTexture && data.type == 1) -// return 5; -// if(data.type == 4) -// return 6; -// if(data.type == 5) -// return 7; -// return data.type + 1; -// } - private int getTailIndex(ModelPartData data){ if(data == null) return 0; @@ -99,6 +91,9 @@ public class GuiModelLegs extends GuiModelInterface{ if(button.id == 8){ playerdata.legwear = (byte) button.getValue(); } + if(button.id == 30){ + playerdata.hideLegs = (byte) button.getValue(); + } if(button.id == 1){ ModelPartData data = playerdata.legParts; int value = button.getValue() - 1; diff --git a/src/main/java/noppes/npcs/client/model/ModelMPM.java b/src/main/java/noppes/npcs/client/model/ModelMPM.java index 8cdb6412c..5e7a4ece2 100644 --- a/src/main/java/noppes/npcs/client/model/ModelMPM.java +++ b/src/main/java/noppes/npcs/client/model/ModelMPM.java @@ -489,6 +489,10 @@ public class ModelMPM extends ModelNPCMale{ GL11.glTranslatef((float)Math.sin(dancing) * 0.075F, (float)Math.abs(Math.cos(dancing)) * 0.125F - 0.02F, (float)(-Math.abs(Math.cos(dancing))) * 0.075F); } ModelPartConfig head = entity.modelData.head; + + // Hide Head + ((ModelScaleRenderer)this.bipedHead).isHidden = entity.modelData.hideHead == 1; + if(bipedHeadwear.showModel && !bipedHeadwear.isHidden){ if(entity.modelData.headwear == 1 || isArmor){ ((ModelScaleRenderer)this.bipedHeadwear).setConfig(head,x,y,z); @@ -524,28 +528,13 @@ public class ModelMPM extends ModelNPCMale{ } ModelPartConfig body = entity.modelData.body; -// if(bipedBodywear.showModel && !bipedBodywear.isHidden){ -// if(entity.modelData.bodywear == 1 || isArmor){ -// ((ModelScaleRenderer)this.bipedBodywear).setConfig(body,x,y,z); -// ((ModelScaleRenderer)this.bipedBodywear).render(f); -// } -//// else if(entity.modelData.bodywear == 2){ -//// this.bodywear.rotateAngleX = bipedBodywear.rotateAngleX; -//// this.bodywear.rotateAngleY = bipedBodywear.rotateAngleY; -//// this.bodywear.rotateAngleZ = bipedBodywear.rotateAngleZ; -//// this.bodywear.rotationPointX = bipedBodywear.rotationPointX; -//// this.bodywear.rotationPointY = bipedBodywear.rotationPointY; -//// this.bodywear.rotationPointZ = bipedBodywear.rotationPointZ; -//// this.bodywear.setConfig(body,x,y,z); -//// this.bodywear.render(f); -//// } -// } - if(entity.modelData.bodywear == 1){ - ((ModelScaleRenderer)this.bipedBodywear).isHidden = false; - } - else{ - ((ModelScaleRenderer)this.bipedBodywear).isHidden = true; - } + + // Hide Body + ((ModelScaleRenderer)this.bipedBody).isHidden = entity.modelData.hideBody == 1; + + // Hide Bodywear + ((ModelScaleRenderer)this.bipedBodywear).isHidden = entity.modelData.bodywear != 1; + ((ModelScaleRenderer)this.bipedBody).setConfig(body,x,y,z); ((ModelScaleRenderer)this.bipedBody).render(f); GL11.glPopMatrix(); @@ -566,21 +555,40 @@ public class ModelMPM extends ModelNPCMale{ GL11.glTranslatef((float)Math.sin(dancing) * 0.025F, (float)Math.abs(Math.cos(dancing)) * 0.125F - 0.02F, 0.0F); } - if(entity.modelData.armwear == 1){ - this.bipedRightArmwear.isHidden = false; - this.bipedLeftArmwear.isHidden = false; + // Hide Arms + if(entity.modelData.hideArms == 1){ + ((ModelScaleRenderer)this.bipedRightArm).isHidden = true; + ((ModelScaleRenderer)this.bipedLeftArm).isHidden = true; } - else if(entity.modelData.armwear == 2){ - this.bipedRightArmwear.isHidden = true; - this.bipedLeftArmwear.isHidden = false; + else if(entity.modelData.hideArms == 2){ + ((ModelScaleRenderer)this.bipedRightArm).isHidden = true; + ((ModelScaleRenderer)this.bipedLeftArm).isHidden = false; } - else if(entity.modelData.armwear == 3){ - this.bipedRightArmwear.isHidden = false; - this.bipedLeftArmwear.isHidden = true; + else if(entity.modelData.hideArms == 3){ + ((ModelScaleRenderer)this.bipedRightArm).isHidden = false; + ((ModelScaleRenderer)this.bipedLeftArm).isHidden = true; } else{ - this.bipedRightArmwear.isHidden = true; - this.bipedLeftArmwear.isHidden = true; + ((ModelScaleRenderer)this.bipedRightArm).isHidden = false; + ((ModelScaleRenderer)this.bipedLeftArm).isHidden = false; + } + + // Hide Armwear + if(entity.modelData.armwear == 1){ + ((ModelScaleRenderer)this.bipedRightArmwear).isHidden = false; + ((ModelScaleRenderer)this.bipedLeftArmwear).isHidden = false; + } + else if(entity.modelData.armwear == 2){ + ((ModelScaleRenderer)this.bipedRightArmwear).isHidden = true; + ((ModelScaleRenderer)this.bipedLeftArmwear).isHidden = false; + } + else if(entity.modelData.armwear == 3){ + ((ModelScaleRenderer)this.bipedRightArmwear).isHidden = false; + ((ModelScaleRenderer)this.bipedLeftArmwear).isHidden = true; + } + else{ + ((ModelScaleRenderer)this.bipedRightArmwear).isHidden = true; + ((ModelScaleRenderer)this.bipedLeftArmwear).isHidden = true; } if(!bo){ @@ -606,6 +614,26 @@ public class ModelMPM extends ModelNPCMale{ GL11.glPushMatrix(); + + // Hide Legs + if(entity.modelData.hideLegs == 1){ + ((ModelScaleRenderer)this.bipedRightLeg).isHidden = true; + ((ModelScaleRenderer)this.bipedLeftLeg).isHidden = true; + } + else if(entity.modelData.hideLegs == 2){ + ((ModelScaleRenderer)this.bipedRightLeg).isHidden = true; + ((ModelScaleRenderer)this.bipedLeftLeg).isHidden = false; + } + else if(entity.modelData.hideLegs == 3){ + ((ModelScaleRenderer)this.bipedRightLeg).isHidden = false; + ((ModelScaleRenderer)this.bipedLeftLeg).isHidden = true; + } + else{ + ((ModelScaleRenderer)this.bipedRightLeg).isHidden = false; + ((ModelScaleRenderer)this.bipedLeftLeg).isHidden = false; + } + + // Hide Legwear if(entity.modelData.legwear == 1){ ((ModelScaleRenderer)this.bipedRightLegWear).isHidden = false; ((ModelScaleRenderer)this.bipedLeftLegWear).isHidden = false; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java b/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java index 29bd9d435..09d03200d 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java @@ -21,10 +21,15 @@ public class ModelSkirt extends ModelPartInterface { super(base); float pi = (float) (Math.PI / 5); + textureWidth = 64; + textureHeight = 32; + Shape1 = new ModelPlaneRenderer(base, 58, 18); + Shape1.setTextureSize(64,32); Shape1.addSidePlane(0, 0, 0, 9, 2); ModelPlaneRenderer part1 = new ModelPlaneRenderer(base, 58, 18); + part1.setTextureSize(64,32); part1.addSidePlane(2, 0, 0, 9, 2); part1.rotateAngleY = -(float) (Math.PI/2); Shape1.addChild(part1); diff --git a/src/main/resources/assets/customnpcs/lang/en_US.lang b/src/main/resources/assets/customnpcs/lang/en_US.lang index d89d9763b..85193e066 100644 --- a/src/main/resources/assets/customnpcs/lang/en_US.lang +++ b/src/main/resources/assets/customnpcs/lang/en_US.lang @@ -925,4 +925,23 @@ companion.stage=Stage companion.owner=Owner companion.strength=Strength companion.talent=Talent -companion.level=Level \ No newline at end of file +companion.level=Level + +markov.generic.name=Generic Generator +markov.ancientGreek.name=Ancient Greek +markov.aztec.name=Aztec +markov.classicCNPCs.name=Classic CNPCs +markov.japanese.name=Japanese +markov.oldNorse.name=Old Norse +markov.roman.name=Roman (Latin) +markov.sami.name=Lappish (Sami) +markov.slavic.name=Old Polish +markov.welsh.name=Breton (Welsh) +markov.spanish.name=Spanish (Latino) + +markov.gender.name=Gender +markov.gender.either=Either +markov.gender.female=Female +markov.gender.male=Male + +markov.generate=Generate \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/ancient_greek_female.txt b/src/main/resources/assets/customnpcs/markovnames/ancient_greek_female.txt new file mode 100644 index 000000000..7ee8a4d8e --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/ancient_greek_female.txt @@ -0,0 +1,406 @@ +Achaeis +Achaia +Achradina +Actae +Acte +Ada +Adeia +Aedon +Aegiolea +Aegle +Aerope +Aethre +Agamede +Aganippe +Agape +Agapia +Agarista +Agathe +Agathonice +Agave +Aglaia +Aglaurus +Aikaterine +Aithra +Aketa +Alcandre +Alcestis +Alcippe +Alcmene +Alcyone +Alemene +Alkmena +Althaea +Althaia +Althea +Amarhyllis +Amathea +Amatheia +Amphithoe +Amphitrite +Ampinomene +Amplias +Anais +Anastasia +Andromeda +Antehe +Anteia +Antheia +Anthousa +Anthusa +Anticleia +Antigone +Antiochis +Antiope +Anysia +Appollonia +Apseudes +Arete +Arethusa +Argeia +Ariadne +Arisbe +Aristonike +Aristophane +Arsinoe +Artemidora +Artemisia +Aspasia +Astera +Astyoche +Astyocheia +Atalanta +Ate +Athis +Auge +Augo +Autonoe +Auxesia +Axiothea +Barbara +Basiane +Baucis +Berenike +Bito +Briseis +Caenis +Caleope +Callianeira +Callianessa +Calliphana +Calypso +Canace +Castianiera +Charis +Chione +Chiore +Chloe +Chloris +Chryse +Chryseis +Chrysothemis +Cilissa +Cilla +Circe +Clio +Clymene +Clymere +Colubra +Corythia +Cratais +Creusa +Crisa +Ctimene +Cybele +Cydippe +Cymodoce +Cymothoe +Cyrene +Cythereia +Cytheris +Damaris +Damia +Danae +Deianeira +Deineira +Deiphobe +Deipyle +Delias +Demetria +Demophile +Dexamene +Dianeme +Diomede +Dione +Dirce +Doris +Dorothea +Doto +Drosis +Dynamene +Egeria +Egina +Eidothee +Eileithyia +Elcmene +Electra +Elpir +Endeis +Enyo +Eos +Epicaste +Eriboea +Erigone +Eriopis +Eriphyle +Eris +Eucarpia +Eudokia +Eunice +Euodias +Euphro +Euphrosyne +Europa +Eurycleia +Eurydike +Eurynome +Evadne +Galatea +Glauce +Glyke +Gorgo +Gygaea +Haidee +Halie +Harmodias +Harmonia +Hecuba +Hekabe +Hekaline +Hekate +Helice +Helike +Heliodora +Hellanike +Helle +Hermine +Hermione +Hero +Herophile +Hesione +Hilaera +Hippodameia +Hippodamia +Hippolyta +Hypsipyle +Hyrmina +Iaera +Ianeira +Ianessa +Ianthe +Ino +Iola +Iolanthe +Iole +Iomene +Ione +Iphianassa +Iphigenia +Iphimedeia +Iphis +Iphitheme +Irene +Iris +Isadora +Ismene +Issa +Jocasta +Kallisto +Kallixeina +Kassandra +Katana +Katina +Kephissa +Kharmion +Khloe +Khloris +Kleio +Kleopatra +Klymene +Klytemnestra +Koré +Koritto +Kydilla +Kynna +Kynthia +Kypris +Kyra +Labda +Lais +Lalage +Lampetie +Lampito +Lanike +Laodameia +Laodamia +Laodice +Laothoe +Lasthena +Latona +Leda +Lede +Leto +Leucothea +Leucothoe +Limnoreia +Lois +Lyra +Maeonia +Maera +Maia +Maiandria +Marpessa +Medea +Medesicaste +Megaera +Megara +Megare +Melanie +Melantho +Melissa +Melita +Melite +Menelaia +Merope +Metis +Metriche +Milo +Milto +Molpadia +Monima +Monime +Mykale +Myrine +Nausicaa +Neaera +Nemerte +Nephele +Nesaea +Nicopolis +Nikaia +Nikasepolis +Niko +Niobe +Nysa +Oenone +Oitane +Olympias +Omphale +Oreithuia +Oreithyia +Orithyia +Orthia +Otonia +Pales +Panope +Panora +Parthenia +Parthenope +Pasiphae +Pelopia +Penelope +Penthesilea +Percalus +Perialla +Periboea +Pero +Perse +Persephone +Persis +Pervica +Pervinca +Phaedra +Phaedre +Phaethusa +Phaia +Pherenike +Pherusa +Phigaleia +Philea +Philinna +Philomache +Philomela +Philona +Phoebe +Phryne +Phylace +Phylia +Phyllis +Phylo +Phylomedusa +Podarge +Polycaste +Polydamna +Polydora +Polymede +Polyxena +Procne +Procris +Prone +Proto +Protogonia +Psamathe +Psyche +Pylia +Pyrrha +Pythias +Raisa +Rhea +Rhene +Rhoda +Rhode +Rhodope +Roxane +Sappho +Scylla +Sebasteia +Semele +Sophia +Sotera +Speio +Stheneboea +Stratonice +Tecmessa +Telephassa +Thais +Thalassa +Thaleia +Theano +Thebe +Thelma +Themis +Theodotis +Theophane +Theophania +Theophano +Theresa +Thessala +Thessalonike +Thetis +Thisbe +Thoe +Thoosa +Thyia +Timandra +Timo +Tryphena +Tryphosa +Tyro +Xanthe +Xanthippe +Xantippe +Xene +Xenophile +Zenobia +Zita +Zoe \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/ancient_greek_male.txt b/src/main/resources/assets/customnpcs/markovnames/ancient_greek_male.txt new file mode 100644 index 000000000..f2304a7bc --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/ancient_greek_male.txt @@ -0,0 +1,1567 @@ +Abantes +Abas +Abascantus +Abderos +Aberkios +Ablerus +Abreas +Abronychus +Abydos +Acaeus +Acamus +Acessamenus +Acestes +Aclepiades +Acrisias +Acrisius +Acroneos +Actor +Adeimanthos +Adelphius +Admetos +Adrastos +Adrastus +Adrestus +Aeaces +Aegaeon +Aegicoros +Aegisthes +Aegon +Aeimnestos +Aenesidemos +Aeolus +Aeropus +Aeschreas +Aesculapius +Aesepus +Aeson +Aesop +Aetes +Aethon +Aetion +Aetios +Aetolos +Agamedes +Agamemnon +Agapenor +Agapias +Agastrophos +Agathocles +Agathon +Agelaus +Agenor +Agesilaus +Agetos +Agis +Agrias +Aiantes +Aias +Aigeus +Airopos +Aischylos +Akadios +Akamas +Aktis +Aktor +Alastor +Alcaeos +Alcandros +Alcides +Alcimos +Alcinous +Alcmaion +Alcman +Alcon +Alector +Alektryon +Aleuas +Alexandros +Alexarchos +Alexias +Alexis +Alexon +Alkamenos +Alkestis +Alketas +Alkibiades +Alkides +Alkimachos +Alkiphron +Alkmaion +Aloeus +Alphaeus +Alpheos +Alphesiboeus +Alphios +Altes +Alypius +Amarinceus +Ameinias +Ameinokles +Amiantos +Amompharetos +Amopaon +Amphiaraos +Amphidamos +Amphimachos +Amphimnestus +Amphinomous +Amphion +Amphios +Amphitrion +Amyntas +Amyntor +Amyris +Amythaon +Anabesineos +Anacharsis +Anakletos +Anakreon +Anastasios +Anaxagoras +Anaxandridas +Anaxandrides +Anaxandros +Anaxarchos +Anaxilaus +Anaximander +Anaximenes +Anaxis +Anaxos +Anchialus +Anchimolios +Anchises +Ancus +Andokides +Andraemon +Andreas +Androbulos +Androcles +Androdamos +Androgeus +Aneristos +Aniketos +Anisodoros +Antaeus +Antagoras +Antemion +Antenor +Anthemion +Antichares +Antidoros +Antigenes +Antigonos +Antikles +Antilochus +Antinous +Antiochus +Antipatris +Antipatros +Antiphales +Antiphones +Antiphus +Antisthenes +Anytos +Anytus +Apelles +Apellicon +Aphidnos +Apisaon +Apollodoros +Apollophanes +Apollos +Aratus +Arcas +Arcesilaus +Archagoras +Archelaos +Archeptolemus +Archesilaus +Archestratidas +Archilochus +Archytas +Arcidamus +Arcturus +Areilycus +Areisius +Areithous +Argades +Argaeus +Argos +Aridolis +Arion +Ariphron +Aristaeus +Aristagoras +Aristaios +Aristandros +Aristarchos +Aristarchus +Aristides +Aristion +Aristippus +Aristoboulos +Aristobulus +Aristocles +Aristocypros +Aristodemos +Aristogeiton +Aristomachos +Ariston +Aristonous +Aristonymos +Aristophanes +Aristophantes +Aristos +Aristotles +Aristoxenus +Arrabaios +Arridaios +Arsenios +Artemas +Artemidoros +Artemios +Artemisthenes +Arybbas +Asasthenes +Ascalaphus +Ascanius +Aschines +Asius +Asklepios +Asonides +Asopodoros +Asopus +Asphalion +Assaraeus +Astacos +Aster +Asterion +Asteropaeus +Astrabacus +Astyanax +Athamas +Athenades +Athenaeus +Athenion +Athenodorus +Atiphates +Atreus +Atrometos +Attaginas +Attaginos +Attalos +Atymnius +Atys +Audax +Augias +Auletes +Autesion +Autodikos +Autolycus +Autolykos +Automedon +Autonous +Axylus +Azeus +Bacchides +Bacchios +Bacchylides +Bacenor +Bacis +Baerius +Balius +Barates +Bardas +Basileides +Basileios +Basilides +Bathyaes +Belos +Bendis +Bianor +Bias +Bion +Bisaltes +Biton +Blathyllos +Boethus +Borus +Boter +Briareus +Briarus +Brison +Brygos +Bucoli +Bulis +Burrhus +Butacidas +Callimachus +Callimorphus +Carenos +Carneades +Carpophorus +Carpus +Casambus +Castor +Ceas +Cebriones +Celeas +Cephalos +Cepheus +Cephissos +Ceyx +Chabrias +Chaeremon +Chairophon +Chalcodon +Chalcon +Charax +Chares +Charidemos +Charilaus +Charillos +Charmides +Charon +Charopos +Cheiron +Chersis +Chileos +Chilon +Choerilos +Choeros +Chremes +Chremon +Chremonides +Chromis +Chromius +Chrysaor +Chryses +Chrysippos +Chrysogones +Chrysogonus +Chrysolorus +Cilix +Cineas +Cinyras +Cisses +Cisseus +Cleades +Cleandros +Cleathes +Cleisthenes +Cleobulus +Cleodaeos +Cleombrotos +Cleomenes +Cleon +Cleonicus +Cleonymus +Clinias +Clisthenes +Clonius +Clytius +Clytomedes +Cnoethos +Cobon +Codros +Coenus +Coeranus +Coes +Cois +Conon +Coon +Copreus +Cordylion +Coronos +Corydallos +Corydon +Crathis +Cratinus +Cratippus +Cretheus +Crethon +Cretines +Crios +Croesus +Cronos +Cteatus +Ctesippus +Cuphagoras +Cyberniskos +Cycnus +Cylon +Cynaegiros +Cyncus +Cyneas +Cyniscus +Cypselos +Cyrenios +Cytorissos +Dadaces +Daedalos +Daetor +Damasippus +Damasithymos +Damasos +Damastor +Damian +Damianos +Damiskos +Damoetas +Damon +Danaos +Danaus +Daphis +Daphnis +Dardanus +Dares +Davos +Deinias +Deinokrates +Deinomenes +Deiotones +Deiphobus +Deiphonous +Deipylus +Demades +Demaratos +Demarmenos +Demas +Demeas +Demetrios +Democedes +Democoon +Demodocus +Demokrates +Demoleon +Demonax +Demonous +Demophlos +Demosthenes +Deon +Derkylos +Deukalion +Dexicos +Dexios +Diactorides +Diadromes +Diadumenus +Diagoras +Dicaeus +Dieneces +Diocles +Diodoros +Diodorus +Diokles +Diomedes +Dionysios +Dionysophanes +Dionysos +Diophantus +Diores +Dioscuros +Diotrephes +Dismas +Dithyrambos +Dmetor +Dolon +Dolops +Doreios +Doreius +Dorian +Doriskos +Doros +Dorotheus +Doryssos +Dosithios +Drimylos +Dromeus +Dryas +Dryops +Ducetius +Duris +Dymas +Dymnos +Echeeus +Echekrates +Echelaos +Echemmon +Echemus +Echephron +Echepolus +Echestratos +Eetion +Eioneus +Eirenaios +Elasus +Elatos +Elatreus +Eleon +Elephenor +Elpenor +Elpides +Elpidius +Empedocles +Endios +Endymion +Engenes +Eniopus +Ennaeus +Ennomus +Ennychus +Enops +Eos +Epaenetus +Epaphos +Epaphroditus +Epeigeus +Epeius +Ephialtes +Epicurus +Epicydes +Epikrates +Epimenes +Epiphanes +Epistor +Epistrophos +Epitrophos +Epizelos +Erasistratus +Eratosthenes +Eratostheres +Erechtheus +Eretmenus +Ereuthalion +Erginus +Ergiyios +Erichthonius +Erxandros +Eryalus +Erysichton +Eryx +Eryximachos +Eteocles +Eteokles +Eteonous +Euaemon +Eualcidas +Euanthes +Euarestos +Eubalus +Eubulus +Eucarpus +Euchenor +Eucleides +Eudorus +Eudoxsus +Eudoxus +Euenius +Euenor +Euenus +Eugammon +Eugenios +Eugenius +Euhemenis +Euippus +Eukles +Eumaeus +Eumastas +Eumelus +Eumenes +Eumneus +Eumolpus +Euneas +Euonomos +Eupalinus +Euphenes +Euphorbos +Euphorion +Euphronios +Eupolos +Euripides +Euryanax +Eurybates +Eurybiades +Eurycliedes +Eurydamus +Eurydemon +Eurydemos +Euryhus +Eurykrates +Eurykratides +Euryleon +Eurylochos +Eurymachos +Euryphon +Eurypylos +Eurystenes +Eurysthenes +Eurystheus +Eurysthios +Eurythion +Eurytos +Eussorus +Euthydemos +Euthynos +Eutropios +Eutuches +Eutychides +Eutychus +Evaenetos +Evagoras +Evandros +Evanetus +Evelthon +Evenios +Evenus +Evios +Exaduis +Exekias +Faenus +Galenus +Gallus +Ganymedes +Gauanes +Geleon +Gelo +Gelon +Gennadios +Gerasimos +Giorgius +Glaukias +Glaukos +Glycon +Gnipho +Gordias +Gorgias +Gorgion +Gorgos +Gorgythion +Gregorius +Gryllus +Gurgos +Gylippos +Gyras +Gyrtias +Haemon +Hagias +Hagnon +Halisthertes +Halius +Harmatidas +Harmocydes +Harmodios +Harmon +Harpagos +Harpalion +Harpalos +Harpocras +Hecataeus +Hegesandros +Hegesistratos +Hegetoridas +Heirax +Heiron +Hektor +Helenos +Helgesippos +Helicaon +Heliodorus +Helios +Helle +Hephaestos +Herakleides +Herakleitos +Heraklides +Hermeias +Hermeros +Hermippos +Hermogenes +Hermolaos +Hermolycus +Hermon +Hermotimos +Hero +Herodes +Herodianus +Herodion +Heromenes +Hicetaon +Hiero +Hieronymus +Hipparchos +Hipparinos +Hippasus +Hippias +Hippocoon +Hippoklides +Hippokratides +Hippolytos +Hippomachos +Hippomenes +Hippon +Hipponax +Hipponicus +Hipponous +Hippotas +Hippothous +Hippotion +Hoiples +Homeros +Hyakinthos +Hylas +Hyllos +Hyllus +Hypatius +Hypeirochus +Hypenor +Hyperenor +Hyperion +Hypsenor +Hyrcanus +Hyrtacus +Hyrtius +Iakchos +Ialmenes +Iambulus +Iamus +Iasos +Iatragoras +Iatrokles +Ibanolis +Ibykos +Icarion +Icarius +Icarus +Idaeus +Idaios +Idas +Idomeneus +Ilioneus +Illyrius +Ilus +Imbrasus +Imbrius +Imbrus +Inachos +Inachus +Inaros +Iobates +Iolaos +Iollas +Ion +Iphiclus +Iphicrates +Iphikrates +Iphinous +Iphitos +Iphitus +Iros +Irus +Isagoras +Isandros +Ischenous +Isidor +Isidoros +Ision +Ismaros +Ismenios +Isocrates +Isodemos +Isokrates +Itheus +Itylus +Itys +Kadmos +Kaenas +Kaeneus +Kalchas +Kalesius +Kaletor +Kalliaros +Kallias +Kallikles +Kallikrates +Kallimachos +Kallinicus +Kallinos +Kallipides +Kallipos +Kallisthenes +Kallon +Kameirus +Kandaules +Kannadis +Kapaneus +Kapys +Karipos +Karopophores +Kasos +Kassandros +Kaunos +Kebalinos +Kebes +Kekrops +Keos +Kephalon +Kephalos +Kerameikos +Kerkyon +Keteus +Kimon +Kirphis +Kittos +Kleitos +Kleobis +Kleomenes +Koines +Koinos +Konon +Koragos +Korax +Kosmas +Krantor +Krateros +Kreon +Krinippos +Kristos +Kritias +Kritoboulos +Kritodemos +Kriton +Kroisos +Krokinos +Ktesiphon +Kyknos +Kynaegeiros +Kyrillos +Kyrios +Kyros +Labdacus +Labotas +Laertes +Lagos +Laios +Lamachos +Lampo +Lampon +Lampus +Lamus +Laodamas +Laodocus +Laogonus +Laomedon +Laphanes +Lasos +Lasthenes +Laureion +Leagros +Leandros +Learchos +Leicritus +Leitus +Lemnus +Leo +Leocedes +Leodes +Leon +Leonidas +Leonnatos +Leontiades +Leontis +Leoprepes +Leotychides +Lethos +Leucippus +Leukos +Lichas +Licymnios +Linus +Loxias +Lukos +Lycaon +Lycaretos +Lycidas +Lycomedes +Lycophon +Lycophron +Lycoris +Lycurgos +Lycus +Lydus +Lygdamis +Lykomedes +Lykon +Lynceus +Lysagoras +Lysandros +Lysanios +Lysias +Lysikles +Lysimachos +Lysippos +Lysippus +Lysis +Macar +Macarias +Machaon +Maeon +Maiandrios +Makarios +Maleos +Males +Mantes +Mantios +Marcion +Marnes +Maro +Maron +Marsyas +Mastor +Matullus +Mausolos +Mecistes +Mecistios +Medios +Medon +Medus +Megadates +Megakles +Megakreon +Megapenthes +Megareus +Megasthenes +Megathenes +Meges +Megistias +Meidias +Melampos +Melampus +Melanippos +Melanthios +Melanthos +Melas +Meleagros +Melegros +Meles +Meliboeus +Melicertes +Memnon +Menalcas +Menandros +Menares +Menekrates +Menelaos +Menestas +Menesthes +Menesthios +Menexinos +Menoeces +Menoitios +Mentes +Mentor +Meriones +Mermerus +Merops +Mesaulius +Mesthles +Methodios +Metiochus +Meton +Metrobius +Metron +Metrophanes +Meurius +Micythos +Midas +Midylos +Mikkos +Mikon +Milanion +Miltiades +Minos +Misenus +Mnasyllus +Mnesiphilos +Mnester +Mnesus +Moeris +Moliones +Molpagoras +Monoecus +Monomachus +Mopsius +Mopsus +Morsimus +Morys +Moschion +Mulius +Musaeus +Musaios +Mydon +Mygdon +Myrsinus +Myrto +Mys +Narkissos +Nastes +Naubolus +Naukles +Nausithous +Nauteus +Nearchos +Neleos +Nelpus +Neokles +Neoptolemos +Neritos +Nestor +Niarchos +Nicandros +Nicanor +Nicholas +Nicholaus +Nicias +Nicodemos +Nicodemus +Nicodromos +Nicolaus +Nicomachos +Nicon +Nikandros +Nikanor +Nikasios +Nikedemos +Nikeratos +Nikias +Nikomachos +Nikodemes +Nikomedes +Nilus +Nireus +Nisos +Noemon +Nomion +Nothon +Numa +Nyctinus +Nymphicus +Nymphodorus +Ocealus +Ochesius +Ochos +Ocytos +Odaenathus +Odius +Odysseus +Oeagnus +Oecleus +Oedipus +Oenemaus +Oeneus +Oenomaus +Oenopion +Oenops +Oicles +Oileas +Oliatos +Olus +Olympicus +Olympiodorus +Onamakritos +Onesilos +Onesimos +Onesiphorus +Onetas +Onetor +Onias +Onomastos +Ophelestes +Opites +Ops +Orcus +Orestes +Oresus +Orges +Oribasius +Orion +Orius +Oroites +Orpheus +Orsilochus +Orsiphantes +Orthaeus +Orythroneus +Otreus +Otrynteus +Otus +Paeeon +Paios +Palaechthon +Palaemon +Pallans +Pallas +Palmys +Pammon +Panaetios +Panaetius +Panares +Pandaros +Pandion +Panionos +Panites +Pankratios +Pantares +Panthous +Pantites +Paopeus +Paraebates +Paris +Parmenides +Parmenion +Parthenopaeus +Pasion +Pataicos +Patrobas +Patrobus +Patroclus +Patron +Pausanius +Pedaeus +Pedasus +Pedocles +Peirithous +Peiros +Peisandros +Peithon +Pelagon +Pelegon +Peleus +Pelias +Pelicles +Pelonus +Pelopidas +Peneleos +Peneus +Pentheus +Penthylos +Peolpidas +Perdikkas +Perdix +Periandros +Periclymenus +Perieeres +Perikles +Perimedes +Perimos +Periphas +Periphetes +Periscus +Peritas +Periumus +Peteos +Peukestes +Phaedo +Phaenippos +Phaeops +Phaestus +Phaidon +Phaidriades +Phalanthus +Phalces +Phalinos +Phanagoras +Phancis +Phanes +Phanias +Phantias +Pharnaces +Phausius +Phegeus +Pheidias +Pheidippides +Pheidon +Phemius +Phereclus +Pherecydes +Pheres +Pheronactus +Phidias +Phigaleios +Philagros +Philaon +Phileas +Philemon +Philetor +Philiskos +Philistos +Phillipos +Philocion +Philocrates +Philoctetes +Philocypros +Philoetius +Philogus +Philokles +Philokrates +Philolaos +Philologus +Philomen +Philomenes +Philometer +Philon +Philonikos +Philopoemon +Philostratos +Philostratus +Philotas +Philotectes +Philoxenos +Philpoemon +Phineus +Phintias +Phlaris +Phlegon +Phlios +Phoenix +Phoibus +Phoinix +Phoitios +Phokas +Phokion +Phorbas +Phorcys +Phormion +Phormos +Photius +Phrixus +Phrynichos +Phrynikos +Phrynon +Phylacus +Phylas +Pidytes +Pigres +Pinder +Pirithoos +Pisistratos +Pistias +Pittacos +Pittacus +Pittheus +Pixodarus +Plades +Pleistarchos +Pleistos +Plutarch +Podaeleirus +Podaleirus +Podalinus +Podarces +Podargos +Podaroes +Podes +Poeas +Poecas +Poimen +Polemion +Poliadas +Pollio +Polyas +Polybius +Polyctor +Polydectes +Polydeuces +Polydius +Polydoros +Polyeides +Polygonus +Polykleitos +Polykles +Polykritos +Polymedes +Polyneices +Polypemon +Polyperchon +Polyphemous +Polyphetes +Polyphontes +Polypoetes +Polyxeinus +Ponteus +Porphyrios +Porphyrius +Poseidon +Posides +Posidonios +Potamon +Pratinos +Praxilaus +Praxis +Praxiteles +Praxites +Prexinos +Priam +Prinetadas +Priskos +Procrustes +Proctus +Proetus +Prokles +Prokopios +Prokrustes +Proreus +Protagoras +Protesilaus +Prothoenor +Prothous +Protogenes +Protus +Proxenos +Prymneus +Prytanis +Ptolemaios +Ptolomaeus +Pylades +Pylaemenes +Pylaeus +Pylartes +Pylas +Pylenor +Pyris +Pyrrhus +Pythagoras +Pytheas +Pythes +Pythios +Pythogenes +Radamanthos +Rhadamanthos +Rhesus +Rhexenor +Ribes +Rizon +Sabas +Sabyllos +Salmoneus +Sarpedon +Satyros +Scaios +Scamandius +Scamandrius +Schedius +Scylax +Scyllias +Scythas +Sebastos +Seisames +Selagus +Seldomus +Selepos +Seleukos +Sicinnos +Siculus +Silanos +Silenos +Simmias +Simo +Simoisius +Simonides +Sinis +Sinon +Sippas +Siromos +Sisyphus +Skiron +Smindyrides +Smintheus +Socus +Sophanes +Sophokles +Soranus +Sosibios +Sosicles +Sosigines +Sosilus +Sosimenes +Sosipatros +Sosthenes +Sostias +Sostratos +Spertias +Speudon +Speusippos +Spinther +Spirodion +Stachys +Stentor +Stesagoras +Stesanor +Stesilaus +Sthenelaus +Sthenelus +Stichius +Stolos +Strabo +Strachys +Stratios +Straton +Strophantes +Strophius +Strymon +Syagros +Syennesis +Syloson +Synesius +Talaemenes +Talaos +Talaus +Talos +Talthybios +Tarchon +Taureas +Tebaeus +Tecton +Teiresias +Telamon +Telekles +Telemacho +Telemachos +Telemachus +Telephos +Telephus +Telesinus +Telesphorus +Telines +Tellias +Tellis +Telys +Temenos +Tenes +Tenes +Tenthredon +Tereus +Terillos +Teucer +Teukros +Teutamos +Teuthranes +Teuthras +Thales +Thalpius +Thalysios +Tharybis +Thaulos +Thaumastus +Theagenes +Theages +Theas +Theasides +Themistius +Theoclymnius +Theocydes +Theodekles +Theodoros +Theodotus +Theognis +Theomestor +Theomestros +Theophanes +Theophrastos +Theophrastus +Theophylaktos +Theopompos +Theopompus +Theopropides +Theoros +Theos +Theramenes +Therapon +Theras +Thero +Theron +Thersandros +Therseandros +Thersilochus +Thersites +Thessalos +Thestor +Thettalos +Thoas +Thon +Thoon +Thorax +Thrasidaios +Thrasilaus +Thrasius +Thrasybulos +Thrasyllus +Thrasymedes +Threspotus +Thukydides +Thyestes +Thymoetes +Thymotes +Thyrsis +Thyrsos +Timagenidas +Timagoras +Timais +Timanthes +Timasion +Timasitheus +Timesithius +Timnes +Timoleon +Timon +Timonax +Timotheus +Timoxenos +Tiro +Tirynthius +Tisamenos +Tisandros +Tisias +Tithonius +Titormos +Tityrus +Tlepolemus +Tmolus +Trechus +Triopas +Triptolemus +Triton +Troezenus +Trophimus +Trophnus +Tros +Trypho +Turrianus +Tychaeus +Tydeides +Tydeus +Tymnes +Tyndareus +Tyndarios +Ucalegon +Vettias +Xanthippos +Xanthippus +Xanthos +Xenagoras +Xenokrates +Xenophanes +Xenophon +Xiphilinus +Xuthos +Xuthus +Zagreus +Zamolxis +Zenicetes +Zenodoros +Zephyrinus +Zethus +Zeuxidamos +Zeuxis +Zosimus \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/aztec_given.txt b/src/main/resources/assets/customnpcs/markovnames/aztec_given.txt new file mode 100644 index 000000000..9bbfc6f39 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/aztec_given.txt @@ -0,0 +1,133 @@ +Acalan +Acatl +Acue +Ahuatzi +Ahuic +Amoxtli +Anacaona +Apozanolotl +Atlacamani +Atlacoya +Atlatonin +Atzi +Ayauhteotl +Chalchi +Chalmeca +Chantico +Chicomecoatl +Chiconahui +Chimalley +Chimalli +Chimalma +Chipahua +Cihuaton +Cipactonal +Citlalee +Citlalic +Citlalicue +Coatl +Coaxoch +Coyotl +Coyolxauhqui +Cozamalotl +Cuahutéemoc +Cuallea +Cuallee +Cucyo +Cuetzpallea +Cuetzpallee +Cuicatl +Etapalli +Eztli +Guatemoc +Huitzilin +Huixtocihuatl +Huitl +Ichtacka +Ilamatecuhtli +Ilhicamina +Itzcali +Itzcoatl +Itzli +Itzpapalotl +Itztli +Ixcuiname +Ixtli +Macuilxochitl +Matlalihuitl +Metztli +Mictlantecuhtli +Mixcoatl +Miyaoaxochitl +Mizquixaual +Montezuma +Nahuatl +Necahual +Nenetl +Netzahual +Nochehuatl +Nochtli +Ocotlan +Ohtli +Patlea +Patlee +Patli +Quetzalcoatl +Quetzalli +Tayanna +Teicuih +Teiuc +Tenoch +Tezcacoatl +Tlachinolli +Tlanextic +Tlanextli +Tlazohtzin +Tlilpotonqui +Tochtlea +Tochtlee +Tochtli +Toltecatl +Tonalnan +Tonantzin +Tonatiuh +Tonauac +Tototl +Tozi +Tupack +Tupoc +Ueman +Xicohtencatl +Xihuitl +Xilonen +Xiloxoch +Xipil +Xipilli +Xitllali +Xiuhcoatl +Xiuhtonal +Xiutecuhtli +Xochicotzin +Xochil +Xochilt +Xochipilli +Xochiquetzal +Xochitl +Xochiyotl +Xoco +Xocotzin +Xocoyotl +Xolotl +Yaotel +Yaotl +Yaotyl +Yaretzi +Yolihuani +Yolotli +Yoloxochitl +Yolyamanitzin +Zeltzin +Zipactonal +Zolin +Zuma +Zyanya \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/customnpcs_classic.txt b/src/main/resources/assets/customnpcs/markovnames/customnpcs_classic.txt new file mode 100644 index 000000000..f5792dbad --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/customnpcs_classic.txt @@ -0,0 +1,155 @@ +Ach-aldhat +Achdranys +Adkal +Aldny +Amethyst +Andern +Ankin +Aphmau +Apolitho +Arei +Ariel +Arisotura +Armos +Atesson +Athi +Ava +Ayumu +Bangheart +Basrrelen +Benjamin +Blackwell +Blaze +Brion +Burhat +Carina +Carnow +Carter +Chald +Chim +Chris +Christine +Claire +Cray +Crowfeather +Cuero +Dacks +Daniel +Darage +Demytrix +Div +Divina +Drake +Drakken +Droco +Dyntan +Eirina +Eldamore +Elmn +Embrera +Entranger +Epodyno +Estz +Ethan +Ezall +Faolan +Farcri +Fian +Gakih +Gareld +Gharis +Ghatroth +Grave +Gyaku +Hailinx +Hir +Honf +Ightech +Ightyd +Ineald +Issraya +Itageray +Kakaragon +Kamoku +Kaoz +Karla +Kathrine +Kederath +Ken +Kennet +Kineth +Kora +Kyoukan +Lambton +Larianne +Larson +Lenyx +Leonardo +Lily +Loxiku +Lucas +Lucien +Lynxx +Mable +Magia +Magnus +Malus +Marble +Meadow +Melancholy +Mia +Mika +Naif +Nalworche +Nasu +Neve +Oldam +Oldrake +Pegato +Qua'an +Ranler +Raven +Rilfom +Riplette +Ristai +Rods +Rose +Ross +Rothcersul +Ruin +Saenorath +Sakamoto +Sakiama +Seinkan +Seth +Shadow +Sieq +Silk +Slater +Smaik +Snow +Sparrow +Tanal +Taradien +Tasr +Thanato +Tia'kim +Tiakono +Tinlt +Torerod +Turturdar +Tyltran +Tymen +Urnp +Valentine +Vorbani +Waran-ess +Wate +William +Winter +Wyrl +Xalgan +Ylander +Yosil +Zenix +Zidane \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/japanese_given_female.txt b/src/main/resources/assets/customnpcs/markovnames/japanese_given_female.txt new file mode 100644 index 000000000..1b4e1c003 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/japanese_given_female.txt @@ -0,0 +1,386 @@ +Ai +Aika +Aiko +Aimi +Aina +Airi +Akane +Akari +Akemi +Akeno +Aki +Akie +Akiko +Akina +Akiyo +Amane +Ami +Anzu +Aoi +Arisa +Asako +Asami +Asuka +Asumi +Asuna +Atsuko +Atsumi +Aya +Ayaka +Ayako +Ayame +Ayami +Ayana +Ayane +Ayano +Ayu +Ayuka +Ayuko +Ayumi +Azumi +Azusa +Chie +Chieko +Chiemi +Chiharu +Chiho +Chika +Chikako +Chinami +Chinatsu +Chisato +Chitose +Chiyako +Chiyo +Chiyoko +Chizuko +Chizuru +Eiko +Eimi +Emi +Emiko +Emiri +Eri +Erika +Eriko +Erina +Etsuko +Fujie +Fujiko +Fūka +Fukumi +Fumi +Fumie +Fumika +Fumiko +Fumino +Fumiyo +Fusako +Fuyuko +Fuyumi +Hana +Hanae +Hanako +Harue +Haruhi +Haruka +Haruko +Haruna +Haruyo +Hatsue +Hideko +Hidemi +Hikari +Himeko +Hina +Hinako +Hiroe +Hiroka +Hiroko +Hiroyo +Hisa +Hisae +Hisako +Hisaya +Hisayo +Hitomi +Honami +Honoka +Ichiko +Ikue +Ikuko +Ikumi +Ikuyo +Itsuko +Itsumi +Jitsuko +Junko +Kaede +Kaguya +Kaho +Kahoru +Kana +Kanae +Kanako +Kanna +Kanoko +Kaori +Kaoruko +Karin +Kasumi +Katsuko +Kawai +Kayoko +Kazue +Kazuha +Kazuko +Kazusa +Kazuyo +Keiki +Keiko +Kiko +Kikue +Kikuko +Kimiko +Kira +Kiyoko +Koharu +Konomi +Kotoe +Kotomi +Kotono +Kotori +Kozue +Kumi +Kumiko +Kuniko +Kurenai +Kuriko +Kyoko +Maaya +Machi +Machiko +Madoka +Maho +Mai +Maiko +Maki +Makiko +Mami +Mamiko +Mana +Manaka +Manami +Mao +Mari +Maria +Marie +Mariko +Masae +Masako +Masayo +Matsuko +Mayako +Mayu +Mayuko +Mayumi +Mayura +Megu +Megumi +Mei +Meiko +Meisa +Michiko +Mie +Mieko +Miho +Mihoko +Miiko +Mika +Mikako +Miki +Mikiko +Miku +Mikuru +Mimori +Mina +Minae +Minako +Minami +Mineko +Mioko +Miori +Misa +Misaki +Misako +Misato +Misumi +Mitsuki +Mitsuko +Mitsuyo +Miu +Miwa +Miwako +Miyabi +Miyako +Miyoko +Miyoshi +Miyu +Miyuki +Miyumi +Miyū +Mizue +Mizuki +Mizuko +Moeko +Momo +Momoe +Momoka +Momoko +Motoko +Mutsuko +Mutsumi +Nagako +Nami +Nana +Nanae +Nanako +Nanami +Nanase +Nao +Naoko +Narumi +Natsue +Natsuko +Natsume +Natsumi +Noa +Nobuko +Nodoka +Nonoka +Noriko +Noriyo +Nozomi +Omi +Otoha +Otome +Ran +Rei +Reika +Reiko +Reina +Rena +Rie +Rieko +Riho +Rika +Rikako +Riko +Rina +Rio +Risa +Risako +Ritsuko +Rui +Rumi +Rumiko +Runa +Ruri +Ruriko +Ryōka +Ryoko +Sachie +Sachiko +Sadako +Saeko +Saki +Sakie +Sakiko +Saku +Sakura +Sakurako +Sanae +Saori +Sari +Satoko +Satomi +Sawa +Sawako +Saya +Sayaka +Sayako +Sayo +Sayoko +Sayumi +Sayuri +Seiko +Setsuko +Shigeko +Shiho +Shiina +Shimako +Shinako +Shino +Shiori +Shizue +Shizuko +Shōko +Shuko +Sugako +Sumie +Sumika +Sumiko +Sumire +Suzue +Suzuka +Suzuko +Taeko +Takako +Takeko +Tamami +Tamao +Tamiko +Tatsuko +Teiko +Teruko +Terumi +Tokiko +Tokuko +Tomiko +Tomoka +Tomoko +Tomoyo +Toshiko +Toyoko +Tsukiko +Tsuneko +Tsuru +Umeko +Waka +Wakako +Yae +Yaeko +Yasue +Yasuko +Yayoi +Yoko +Yoriko +Yoshiko +Yoshino +Yui +Yuka +Yukari +Yukie +Yukiko +Yukina +Yūko +Yumeko +Yumi +Yumie +Yumika +Yumiko +Yuri +Yurie +Yurika +Yuriko +Yurina \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/japanese_given_male.txt b/src/main/resources/assets/customnpcs/markovnames/japanese_given_male.txt new file mode 100644 index 000000000..2ba71a1f9 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/japanese_given_male.txt @@ -0,0 +1,1189 @@ +Akifumi +Akihiko +Akihiro +Akihisa +Akihito +Akimasa +Akimitsu +Akinari +Akinobu +Akinori +Akio +Akisada +Akitake +Akito +Akitoshi +Akitsugu +Akiya +Akiyoshi +Akiyuki +Arata +Arihiro +Arinaga +Arinobu +Aritomo +Asahiko +Asao +Atomu +Atsuhiko +Atsuhiro +Atsuji +Atsunobu +Atsuo +Atsushi +Atsuto +Atsuya +Azuma +Banri +Bunji +Bunta +Chikao +Chikara +Chikashi +Chikayoshi +Chōbyō +Chōei +Choki +Chūichi +Chūjirō +Dai +Daichi +Daigo +Daiji +Daijirō +Daiki +Dairoku +Daisaku +Daishi +Daishin +Daisuke +Daizō +Eiichi +Eiichiro +Eiji +Eijirō +Eikichi +Einosuke +Eishun +Eisuke +Eita +Eitarō +Eizō +Emon +Etsuji +Fujio +Fumiaki +Fumihiko +Fumihiro +Fuminori +Fumio +Fumitaka +Fumito +Fumiya +Fusanosuke +Fusazane +Futoshi +Fuyuki +Gaku +Gakuto +Gen +Gen'ichi +Gen'ichirō +Genjiro +Genki +Genta +Gentarō +Genzo +Giichi +Gin +Goichi +Goro +Hachirō +Hakaru +Haruaki +Haruchika +Haruhiko +Haruhiro +Haruhisa +Haruki +Harukichi +Harunobu +Harunori +Haruo +Harutaka +Haruto +Haruyoshi +Hatsuo +Hayanari +Hayata +Hayato +Heihachirō +Heiichirō +Heisuke +Hideaki +Hideharu +Hidehiko +Hidehito +Hideji +Hidekazu +Hideki +Hidemaro +Hidemasa +Hidemi +Hidemitsu +Hidenobu +Hidenori +Hideo +Hideshi +Hidetada +Hidetaka +Hideto +Hidetoshi +Hidetsugu +Hideya +Hideyo +Hideyoshi +Hideyuki +Hiro +Hiroaki +Hirofumi +Hirohide +Hirohisa +Hiroji +Hirokatsu +Hirokazu +Hiroki +Hirokuni +Hiromasa +Hiromichi +Hiromitsu +Hiromori +Hiromoto +Hironari +Hironobu +Hironori +Hiroo +Hirooki +Hiroomi +Hiroshi +Hiroshige +Hirotaka +Hirotami +Hiroto +Hirotoki +Hirotomo +Hirotoshi +Hirotsugu +Hiroya +Hiroyasu +Hiroyoshi +Hiroyuki +Hisahito +Hisamitsu +Hisamoto +Hisanobu +Hisanori +Hisao +Hisashi +Hisataka +Hisateru +Hisato +Hisatsugu +Hisaya +Hisayasu +Hisayoshi +Hisayuki +Hitoshi +Hokuto +Hozumi +Ichiei +Ichirō +Ichizō +Iehiro +Iehisa +Iemasa +Iemon +Iesada +Ikki +Ikko +Ikuo +Ikurō +Ippei +Isami +Isamu +Isao +Issei +Itaru +Itsuo +Itsurō +Iwao +Jiichirō +Jin +Jin'ichi +Jinpachi +Jinzaburō +Jiro +Jōichirō +Joji +Jōkichi +Jōtarō +Jūbei +Jūkichi +Junichi +Jun'ichirō +Junji +Junki +Junpei +Jun'ya +Junzō +Jūshirō +Jūtarō +Jūzō +Kagemori +Kagenori +Kagetaka +Kaichi +Kaii +Kaiji +Kaito +Kakichi +Kaku +Kakuji +Kanehira +Kanehiro +Kanehisa +Kanematsu +Kanemoto +Kanesuke +Kanetake +Kaneto +Kanetsugu +Kaneyoshi +Kan'ichi +Kankuro +Kansuke +Kanta +Katsuaki +Katsuhiko +Katsuhiro +Katsuhisa +Katsuhito +Katsuji +Katsuki +Katsukiyo +Katsumasa +Katsumoto +Katsunaga +Katsunari +Katsunori +Katsunosuke +Katsuo +Katsushi +Katsusuke +Katsutarō +Katsuteru +Katsutomo +Katsutoshi +Katsuya +Katsuyoshi +Katsuyuki +Katsuzō +Kazuaki +Kazufumi +Kazuharu +Kazuhiko +Kazuhiro +Kazuhisa +Kazuhito +Kazuki +Kazuma +Kazumasa +Kazumichi +Kazunari +Kazunori +Kazuo +Kazuoki +Kazurō +Kazushi +Kazushige +Kazutaka +Kazuto +Kazutoki +Kazutoshi +Kazuya +Kazuyoshi +Kazuyuki +Keigo +Keiichi +Keiichirō +Keiji +Keijirō +Keijū +Keiki +Keinosuke +Keishi +Keisuke +Keita +Keizaburō +Keizō +Ken +Ken'ichi +Kengo +Ken'ichirō +Kenji +Kenjirō +Kenki +Kenkichi +Kensaku +Kensei +Kenshi +Kenshin +Kensuke +Kenta +Kentaro +Kento +Ken'yū +Kenzo +Kesao +Kihachi +Kihachirō +Kihei +Kiichirō +Kikuo +Kimio +Kimitoshi +Kimiya +Kin'ichi +Kin'ichirō +Kinji +Kinjirō +Kintaro +Kin'ya +Kisaburō +Kisaku +Kishō +Kiyoaki +Kiyofumi +Kiyohide +Kiyohiko +Kiyohiro +Kiyoji +Kiyokazu +Kiyomoto +Kiyonari +Kiyonori +Kiyoo +Kiyoshi +Kiyosue +Kiyotaka +Kiyotake +Kiyoyuki +Kogorō +Kōhei +Kōichi +Koichiro +Kojiro +Kōki +Kōkichi +Kōnosuke +Korechika +Korekiyo +Kōrō +Kōsaku +Kōsei +Kōshirō +Koson +Kōsuke +Kotaro +Kōji +Kouta +Kōzō +Koya +Koyo +Kumatarō +Kuniaki +Kunihiko +Kunihiro +Kunihisa +Kunimasa +Kunimitsu +Kunio +Kunitake +Kuniyoshi +Kuniyuki +Kuranosuke +Kusuo +Kyōgo +Kyōhei +Kyōichi +Kyōji +Kyōsuke +Kyukichi +Mahiro +Makio +Makito +Mamoru +Manabu +Manjirō +Mantarō +Mareo +Masaaki +Masabumi +Masachika +Masafumi +Masaharu +Masahide +Masahiko +Masahiro +Masahisa +Masahito +Masaichi +Masaie +Masaji +Masakage +Masakatsu +Masakazu +Masakuni +Masamichi +Masamitsu +Masamori +Masamune +Masamura +Masanao +Masanari +Masanobu +Masanori +Masanosuke +Masao +Masaomi +Masaru +Masashi +Masashige +Masataka +Masatake +Masatane +Masateru +Masato +Masatomo +Masatoshi +Masatsugu +Masaya +Masayoshi +Masayuki +Masazumi +Masuo +Masuzō +Matabei +Matsuchi +Matsuki +Matsuo +Matsushige +Michiaki +Michiharu +Michihiko +Michihiro +Michihisa +Michinori +Michio +Michirō +Michitaka +Michitarō +Michiya +Michiyoshi +Mikio +Mikito +Mikuni +Mineichi +Mineo +Minoru +Mitsuaki +Mitsugi +Mitsugu +Mitsuharu +Mitsuhide +Mitsuhiko +Mitsuhira +Mitsuhiro +Mitsuhisa +Mitsumasa +Mitsumori +Mitsunobu +Mitsunori +Mitsuo +Mitsuomi +Mitsushige +Mitsusuke +Mitsutaka +Mitsutarō +Mitsuteru +Mitsutoshi +Mitsuyasu +Mitsuyo +Mitsuyoshi +Mitsuyuki +Mochiaki +Mokichi +Morihiko +Morihiro +Morikazu +Morimasa +Morio +Morishige +Moritaka +Mosuke +Motoaki +Motofumi +Motoharu +Motohiko +Motohiro +Motoichi +Motojirō +Motoki +Motomu +Motonobu +Motoo +Motoshi +Motoshige +Motosuke +Mototada +Mototsugu +Motoyasu +Motoyuki +Motozane +Mukuro +Munehiro +Munemori +Munenobu +Munenori +Muneo +Muneshige +Munetaka +Munetoki +Munetoshi +Muneyoshi +Murashige +Musashi +Mutsuo +Nagaharu +Nagahide +Nagamasa +Nagamichi +Naganao +Naganori +Nagatoki +Nagatomo +Namio +Nankichi +Naofumi +Naohiko +Naohiro +Naohisa +Naohito +Naoji +Naokatsu +Naoki +Naomasa +Naomichi +Naomori +Naonobu +Naoshi +Naotaka +Naotake +Naoto +Naoya +Naoyuki +Naozumi +Nariaki +Nariakira +Naritaka +Nariyasu +Nariyuki +Naruhisa +Naruhito +Naruyuki +Natsuhiko +Noboru +Nobuaki +Nobuatsu +Nobuharu +Nobuhiko +Nobuhiro +Nobuhisa +Nobuhito +Nobukatsu +Nobukazu +Nobumasa +Nobumitsu +Nobumoto +Nobunao +Nobunari +Nobuo +Nobusada +Nobusuke +Nobutaka +Nobuteru +Nobutoki +Nobutomo +Nobutoshi +Nobutsuna +Nobuyasu +Nobuyoshi +Nobuyuki +Nobuzane +Noriaki +Norifumi +Norifusa +Norihide +Norihiko +Norihiro +Norihito +Norikazu +Norimasa +Norimoto +Norio +Noriyasu +Noriyoshi +Noriyuki +Nozomu +Okimoto +Osamu +Otohiko +Raizo +Reiichi +Reiji +Reizō +Rentarō +Reo +Riichi +Rikichi +Rikiya +Rinshō +Ritsuo +Rokurō +Ryōhei +Ryōichi +Ryōji +Ryōma +Ryōsei +Ryōsuke +Ryōta +Ryōtarō +Ryōzō +Ryu +Ryūhei +Ryūichi +Ryūji +Ryūki +Ryūnosuke +Ryūsaku +Ryūsei +Ryūsuke +Ryūta +Ryūtarō +Ryūma +Ryūya +Ryūzō +Saburō +Sachio +Sadaaki +Sadaharu +Sadahiko +Sadakazu +Sadanaga +Sadao +Sadatoshi +Sadayoshi +Sadazane +Saiichi +Sakichi +Sanji +Sankichi +Satonari +Satoru +Satoshi +Satsuo +Seigen +Seigo +Seihō +Seiichi +Seiichirō +Seiji +Seijin +Seijirō +Seiki +Seikichi +Seishi +Seishirō +Seitarō +Seiya +Seizō +Sendai +Senkichi +Setsurō +Shichirō +Shigeaki +Shigefumi +Shigeharu +Shigehiro +Shigehisa +Shigekazu +Shigeki +Shigemasa +Shigematsu +Shigemi +Shigemitsu +Shigemoto +Shigenaga +Shigenobu +Shigenori +Shigeo +Shigeru +Shigetada +Shigetaka +Shigeto +Shigetoshi +Shigeyasu +Shigeyoshi +Shigeyuki +Shikō +Shin +Shingo +Shin'ichi +Shin'ichirō +Shinji +Shinjirō +Shinjō +Shinkichi +Shinpachi +Shinpei +Shinsaku +Shinsuke +Shinta +Shintarō +Shinya +Shinzō +Shiryu +Shizuo +Shō +Shōgo +Shōhei +Shōichi +Shōji +Shōjirō +Shōma +Shōsuke +Shōta +Shōtarō +Shōya +Shōzō +Shu +Shūgo +Shūichi +Shūji +Shuko +Shun +Shungo +Shun'ichi +Shun'ichirō +Shunji +Shunkichi +Shunpei +Shunsaku +Shunsui +Shunsuke +Shunta +Shuntarō +Shun'ya +Shunzō +Shūsaku +Shūsuke +Shūta +Shūhei +Shūzō +Sō +Sōgen +Sōichi +Sōichirō +Sōji +Sōnosuke +Sōsuke +Sōtarō +Suehiro +Suenaga +Suguru +Sukehiro +Sukemasa +Sukenobu +Suketoshi +Suketsugu +Sukeyuki +Sumihiro +Sumimoto +Sumio +Sumiyoshi +Sunao +Susumu +Sutemi +Tadaaki +Tadachika +Tadafumi +Tadaharu +Tadahiko +Tadahiro +Tadahito +Tadakatsu +Tadamasa +Tadami +Tadamori +Tadanaga +Tadanao +Tadanari +Tadanobu +Tadanori +Tadao +Tadaoki +Tadashi +Tadataka +Tadateru +Tadatomo +Tadatoshi +Tadatsugu +Tadatsune +Tadayo +Tadayoshi +Tadayuki +Taichi +Taichirō +Taiga +Taiichi +Taiji +Taiki +Taishi +Taisuke +Taizō +Taka +Takaaki +Takafumi +Takaharu +Takahide +Takahiko +Takahiro +Takahisa +Takahito +Takakazu +Takaki +Takamasa +Takamitsu +Takamori +Takanobu +Takanori +Takao +Takashi +Takatō +Takatomi +Takatoshi +Takatsugu +Takauji +Takaya +Takayasu +Takayoshi +Takayuki +Takeaki +Takefumi +Takeharu +Takehiko +Takehiro +Takehisa +Takehito +Takeichi +Takejirō +Takenaga +Takenori +Takeo +Takero +Takeru +Takeshi +Taketo +Taketora +Taketoshi +Takeya +Takeyoshi +Takeyuki +Takezō +Taku +Takuji +Takuma +Takumi +Takuo +Takurō +Takuto +Takuya +Takuzō +Tamio +Tamotsu +Tarō +Tasuku +Tateo +Tatsuaki +Tatsuhiko +Tatsuhiro +Tatsuhito +Tatsuji +Tatsuma +Tatsumi +Tatsunori +Tatsunosuke +Tatsuo +Tatsurō +Tatsushi +Tatsuya +Tatsuyoshi +Tatsuyuki +Tatsuzō +Teiichi +Teiji +Teijirō +Teiko +Teizō +Teppei +Teruaki +Teruhiko +Teruhisa +Teruichi +Teruki +Terumasa +Terunobu +Teruo +Teruyoshi +Teruyuki +Tetsu +Tetsuharu +Tetsuhiro +Tetsuji +Tetsumasa +Tetsunosuke +Tetsuo +Tetsurō +Tetsushi +Tetsutarō +Tetsuya +Tetsuzō +Tetta +Togo +Tōichi +Tokihiko +Tokio +Tokuji +Tokujirō +Tokuo +Tokurō +Tokutarō +Tomio +Tomoaki +Tomochika +Tomoharu +Tomohide +Tomohiko +Tomohiro +Tomohisa +Tomohito +Tomoji +Tomokazu +Tomoki +Tomomichi +Tomonobu +Tomonori +Tomotaka +Tomoya +Tomoyasu +Tomoyoshi +Tomoyuki +Torahiko +Toru +Toshi +Toshiaki +Toshifumi +Toshiharu +Toshihide +Toshihiko +Toshihiro +Toshihisa +Toshihito +Toshiji +Toshikatsu +Toshikazu +Toshiki +Toshimasa +Toshimichi +Toshimitsu +Toshinaga +Toshinao +Toshinari +Toshinobu +Toshinori +Toshio +Toshirō +Toshitada +Toshitaka +Toshitsugu +Toshiya +Toshiyasu +Toshiyoshi +Toshiyuki +Toshizō +Toyoaki +Toyohiko +Toyokazu +Toyomatsu +Toyoshige +Toyozō +Tsugio +Tsugumasa +Tsugumichi +Tsugutoshi +Tsuneharu +Tsunehiko +Tsunehisa +Tsunejirō +Tsunekazu +Tsunemi +Tsunenori +Tsuneo +Tsuneyoshi +Tsuneyuki +Tsurugi +Tsutomu +Tsuyoshi +Umanosuke +Umeji +Wataru +Yahiko +Yahiro +Yanosuke +Yashiro +Yasuaki +Yasufumi +Yasuharu +Yasuhide +Yasuhiko +Yasuhiro +Yasuhisa +Yasuji +Yasujirō +Yasukazu +Yasuki +Yasumasa +Yasumi +Yasumichi +Yasunari +Yasunobu +Yasunori +Yasuo +Yasurō +Yasushi +Yasutaka +Yasutake +Yasutarō +Yasutomo +Yasutoshi +Yasuyoshi +Yasuyuki +Yatarō +Yō +Yōhei +Yōichi +Yōichirō +Yōji +Yōjirō +Yorimitsu +Yorinobu +Yorishige +Yoritaka +Yoritsugu +Yoritsune +Yoriyuki +Yoshi +Yoshiaki +Yoshifumi +Yoshiharu +Yoshihide +Yoshihiko +Yoshihiro +Yoshihisa +Yoshihito +Yoshiie +Yoshikane +Yoshikatsu +Yoshikazu +Yoshiki +Yoshikiyo +Yoshikuni +Yoshimasa +Yoshimatsu +Yoshimichi +Yoshimitsu +Yoshimori +Yoshimoto +Yoshinaga +Yoshinao +Yoshinari +Yoshinobu +Yoshinori +Yoshio +Yoshirō +Yoshisada +Yoshishige +Yoshisuke +Yoshitaka +Yoshitake +Yoshitarō +Yoshiteru +Yoshito +Yoshitomo +Yoshitsugu +Yoshiya +Yoshiyasu +Yoshiyuki +Yoshizumi +Yōsuke +Yōta +Yōzō +Yūdai +Yugi +Yugo +Yūhei +Yuichi +Yūichirō +Yūji +Yūjirō +Yūkichi +Yukiharu +Yukihiko +Yukihiro +Yukimasa +Yukimura +Yukinobu +Yukinori +Yukio +Yukishige +Yukitaka +Yukito +Yukitoshi +Yukiya +Yukiyoshi +Yuma +Yūsaku +Yūsei +Yūshi +Yūsuke +Yūta +Yutaka +Yūtarō +Yūto +Yūya +Yūzō +Yuzuru +Zenjiro +Zenkichi +Zentarō +Zenzō \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/japanese_surnames.txt b/src/main/resources/assets/customnpcs/markovnames/japanese_surnames.txt new file mode 100644 index 000000000..7bd973486 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/japanese_surnames.txt @@ -0,0 +1,2341 @@ +Abe +Abeno +Abiko +Abo +Aburaya +Adachi +Adachihara +Agata +Agatsuma +Agawa +Ahane +Aiba +Aichi +Aida +Aihara +Aijima +Aikawa +Aikoh +Aikura +Aikyo +Aimoto +Aisawa +Aiso +Aiuchi +Aizawa +Akaba +Akabane +Akada +Akae +Akagawa +Akagi +Akahori +Akahoshi +Akaike +Akaishi +Akamatsu +Akamine +Akane +Akaneya +Akanishi +Akao +Akasaka +Akasaki +Akashi +Akasofu +Akatsuka +Akaza +Akazawa +Akesaka +Akiba +Akihara +Akiho +Akikawa +Akimoto +Akimura +Akinaga +Akino +Akisada +Akita +Akitomi +Akiya +Akiyama +Akiyoshi +Akizuki +Akutagawa +Akutsu +Amachi +Amami +Amamiya +Amane +Amano +Amari +Amaya +Amemiya +Amenomori +Amuro +Anabuki +Anai +Anami +Anan +Ando +Anno +Anzai +Aoba +Aochi +Aoi +Aoike +Aoki +Aomatsu +Aomori +Aomoto +Aono +Aonuma +Aoshima +Aoyagi +Aoyama +Aozora +Arabori +Aragaki +Arai +Arakaki +Arakawa +Araki +Aramaki +Arata +Aratama +Aratani +Ariga +Arikawa +Arima +Arimachi +Arimori +Arimoto +Arimura +Arinaga +Arisaka +Arisawa +Arishima +Arita +Arito +Ariyoshi +Asada +Asagami +Asagiri +Asahara +Asahi +Asahina +Asai +Asaka +Asakawa +Asaki +Asakuma +Asakura +Asami +Asano +Asanuma +Asao +Asaoka +Asashima +Asato +Asayama +Ashida +Ashihara +Ashinano +Ashiro +Ashitomi +Aso +Asoshina +Asuka +Asumi +Atsumi +Atsuzawa +Awaji +Awara +Awashima +Awaya +Ayahana +Ayamine +Ayano +Ayatsuji +Ayukawa +Ayusawa +Azaki +Azuki +Azuma +Azumaya +Azumi +Baba +Baisho +Bando +Banno +Beppu +Bessho +Chatan +Chiaki +Chiba +Chida +Chihaya +Chijimatsu +Chikanari +Chikudate +Chinen +Chisaka +Chiyotanda +Chiziwa +Chujo +Chuza +Daigo +Daiju +Daimon +Daita +Date +Deguchi +Demura +Dewa +Dobashi +Dogura +Doi +Doigawa +Dokite +Domon +Domoto +Ebashi +Ebihara +Ebina +Ebinuma +Ebisu +Eda +Edamura +Edano +Egami +Egashira +Egawa +Eguchi +Egusa +Ehara +Eisen +Ejiri +Ekuni +Emon +Emoto +Enami +Enatsu +Endo +Enokida +Enomoto +Esashi +Esashika +Esumi +Fuchigami +Fuchizaki +Fueki +Fuji +Fujibayashi +Fujie +Fujihara +Fujiharu +Fujii +Fujiie +Fujikawa +Fujiki +Fujikura +Fujima +Fujimaki +Fujimaru +Fujimori +Fujimoto +Fujimura +Fujinaga +Fujinaka +Fujinami +Fujino +Fujio +Fujioka +Fujisaki +Fujisawa +Fujishima +Fujita +Fujitani +Fujiwara +Fujiyama +Fukada +Fukai +Fukao +Fukasawa +Fukaura +Fukaya +Fukazawa +Fuke +Fukikoshi +Fukuchi +Fukuda +Fukudome +Fukufuji +Fukuhara +Fukui +Fukumi +Fukumitsu +Fukumori +Fukumoto +Fukumura +Fukunaga +Fukuo +Fukuoka +Fukura +Fukushi +Fukushima +Fukutomi +Fukuyama +Fukuzawa +Fumizuki +Funae +Funai +Funaki +Funakoshi +Funamizu +Funatani +Funatsu +Funayama +Furihata +Furuhashi +Furuhata +Furui +Furukawa +Furuki +Furusawa +Furushima +Furuta +Furutani +Furuya +Fushimi +Futagawa +Futahashi +Futakami +Futami +Futara +Fuwa +Fuyuki +Fuyukichi +Gamo +Ganaha +Genji +Gomi +Goto +Goda +Gushiken +Hachisu +Hachisuka +Hada +Haga +Hagihara +Hagimoto +Hagimura +Hagino +Hagio +Hagisaki +Hagiuda +Hagiwara +Haitani +Hajikano +Hajime +Hakamada +Hakoyama +Haku +Hama +Hamada +Hamaguchi +Hamamoto +Hamamura +Hamanaka +Hamano +Hamasaki +Hamayotsu +Hamuro +Hanabusa +Hanada +Hanae +Hanagata +Hanai +Hanamori +Hanamura +Hanaoka +Hanashiro +Hanato +Hanazawa +Hanazono +Handa +Hara +Harada +Haraguchi +Harakawa +Harasaki +Harasawa +Harimoto +Harukawa +Haruki +Haruna +Haruno +Haruta +Hasebe +Hasegawa +Hasekura +Hasemi +Hashi +Hashida +Hashiguchi +Hashimoto +Hashimura +Hashiratani +Hashiuchi +Hashizume +Hasumi +Hata +Hatada +Hatakeda +Hatakeyama +Hatanaka +Hatano +Hatayama +Hato +Hatori +Hatoyama +Hatsu +Hatsumi +Hattori +Hayaishi +Hayakawa +Hayama +Hayami +Hayano +Hayasaka +Hayashi +Hayashibe +Hayashida +Hayata +Hazui +Hazuki +Henmi +Hibi +Hibino +Hida +Hidaka +Higa +Higaki +Higaonna +Higasayama +Higashida +Higashide +Higashiguchi +Higashihara +Higashikokubaru +Higashimura +Higashinakano +Higashino +Higashio +Higashiyama +Higuchi +Hiiragi +Hijikata +Hikari +Hikawa +Hikichi +Hikosaka +Himeno +Himura +Hinata +Hinoi +Hinouchi +Hioka +Hira +Hirabayashi +Hirafuji +Hiraga +Hirahara +Hirai +Hiraide +Hiraishi +Hiraiwa +Hiraizumi +Hirajima +Hiraka +Hirakawa +Hiraki +Hirako +Hirama +Hiramatsu +Hiramoto +Hiranaka +Hirano +Hirao +Hiraoka +Hirasawa +Hirase +Hirashima +Hirata +Hirate +Hiratsuka +Hirayama +Hirayanagi +Hirobe +Hiroe +Hirohashi +Hiroi +Hiromichi +Hironaga +Hironaka +Hirono +Hirooka +Hirosaka +Hirose +Hirosue +Hirota +Hirotsu +Hiroyama +Hiryu +Hisa +Hisagae +Hisakawa +Hisamoto +Hisamura +Hisataka +Hisaya +Hisayuki +Hishida +Hishikawa +Hishimi +Hitoto +Hiura +Hiyama +Hiyamizu +Hoashi +Hodoshima +Hokari +Hokinoue +Homma +Homura +Honami +Honda +Hondo +Honjo +Hori +Horie +Horigome +Horiguchi +Horihata +Horii +Horiike +Horikawa +Horikoshi +Horimoto +Horio +Horiuchi +Hosaka +Hoshi +Hoshide +Hoshikawa +Hoshimi +Hoshina +Hoshino +Hosoda +Hosoe +Hosogai +Hosoi +Hosokawa +Hosoki +Hosono +Hosoya +Hosoyamada +Hotta +Hozaki +Hozumi +Hyodo +Ibayashi +Ibuki +Ichida +Ichigatani +Ichihara +Ichihashi +Ichii +Ichijo +Ichikawa +Ichiki +Ichimada +Ichimura +Ichinohe +Ichinose +Ichioka +Ichiyama +Ichiyanagi +Icho +Ida +Ide +Ideguchi +Idemitsu +Idoki +Ieiri +Igarashi +Igari +Igawa +Iguchi +Igusa +Ihara +Iida +Iijima +Iimura +Iimuro +Iinuma +Iio +Iizuka +Ijichi +Ikari +Ikarino +Ikariya +Ikeda +Ikegami +Ikeguchi +Ikehara +Ikemoto +Ikeuchi +Ikuta +Imada +Imahori +Imai +Imaizumi +Imajuku +Imakake +Imakita +Imakura +Imamichi +Imamura +Imanishi +Imaoka +Imaruoka +Imaya +Imoto +Imura +Ina +Inaba +Inada +Inagaki +Inagawa +Inami +Inamine +Inaoka +Inokuma +Inomata +Inoue +Inubushi +Inui +Inukai +Inuzuka +Ioka +Irie +Irifune +Iriguchi +Irii +Isaka +Isayama +Iseda +Ishibashi +Ishibumi +Ishida +Ishidate +Ishigaki +Ishige +Ishiguro +Ishihara +Ishii +Ishijima +Ishikawa +Ishikuma +Ishima +Ishimaru +Ishimine +Ishimori +Ishimoto +Ishimura +Ishinabe +Ishino +Ishitate +Ishiwata +Ishiyama +Ishizaka +Ishizaki +Ishizu +Ishizuka +Ishizumi +Isoda +Isogai +Isomura +Isono +Isoyama +Isozaki +Isshiki +Itagaki +Itahashi +Itamura +Itani +Ito +Ito +Itodani +Itokawa +Itoyama +Itsuki +Itsumi +Itsuno +Iuchi +Iwabuchi +Iwadare +Iwadate +Iwahara +Iwahashi +Iwai +Iwakabe +Iwaki +Iwama +Iwamasa +Iwami +Iwamoto +Iwamura +Iwanaga +Iwao +Iwasa +Iwasaki +Iwase +Iwashiro +Iwashita +Iwata +Iwatani +Iwazaki +Izawa +Izumi +Izumida +Izumikawa +Izumitani +Jinno +Jissoji +Kabane +Kabashima +Kabayama +Kadokawa +Kadokura +Kadonaga +Kadono +Kadonosono +Kadowaki +Kaeriyama +Kagami +Kagawa +Kageyama +Kagurazaka +Kai +Kaieda +Kaifu +Kaimoto +Kaji +Kajihara +Kajii +Kajikawa +Kajino +Kajio +Kajishima +Kajitani +Kajiura +Kajiwara +Kajiya +Kajiyama +Kakehashi +Kakimoto +Kakizakai +Kaku +Kakunaka +Kakutani +Kamachi +Kamada +Kamamoto +Kamata +Kambayashi +Kameda +Kamei +Kamekawa +Kamibayashi +Kamijo +Kamiki +Kamikita +Kamimachi +Kamimoto +Kamimura +Kaminaga +Kaminuma +Kamio +Kamisaka +Kamitanida +Kamitsubo +Kamiya +Kamiyama +Kamohara +Kamura +Kanada +Kanai +Kanakubo +Kaname +Kanamori +Kanasawa +Kanaya +Kanayama +Kanazawa +Kanda +Kanehara +Kanehira +Kanehisa +Kanekawa +Kaneko +Kanemaru +Kanematsu +Kanemitsu +Kanemoto +Kaneshige +Kaneshiro +Kaneto +Kanetsuki +Kangawa +Kanmuri +Kanokogi +Karahashi +Karakawa +Karashima +Karube +Kasagi +Kasahara +Kasai +Kasamatsu +Kasaya +Kase +Kashibuchi +Kashima +Kashiwabara +Kashiwagi +Kashiwase +Kashiyama +Kasuga +Kasuya +Katabuchi +Katagami +Katagiri +Kataoka +Katayama +Kato +Katori +Katsuji +Katsuki +Katsumata +Katsumoto +Katsura +Katsuragi +Katsuro +Katsuya +Kawabe +Kawachi +Kawada +Kawagishi +Kawagoe +Kawaguchi +Kawahara +Kawai +Kawaji +Kawakami +Kawakatsu +Kawakubo +Kawamae +Kawamata +Kawamori +Kawamoto +Kawamura +Kawana +Kawanabe +Kawanaka +Kawano +Kawaoka +Kawaragi +Kawasaki +Kawase +Kawashima +Kawasumi +Kawauchi +Kawazoe +Kawazu +Kawazura +Kayama +Kazama +Kazami +Kibayashi +Kichise +Kida +Kida +Kido +Kidokoro +Kidowaki +Kihara +Kijima +Kijimuta +Kikawada +Kikuchi +Kikumoto +Kikuno +Kimihara +Kimijima +Kimizuka +Kimoto +Kimura +Kingetsu +Kino +Kinomoto +Kinoshita +Kinouchi +Kinowaki +Kinugasa +Kirishima +Kiriyama +Kiryu +Kishi +Kishida +Kishikawa +Kishimoto +Kishino +Kishinouyei +Kisugi +Kita +Kitabatake +Kitabayashi +Kitabeppu +Kitada +Kitagawa +Kitahama +Kitahara +Kitai +Kitajima +Kitamori +Kitamoto +Kitamura +Kitano +Kitao +Kitashima +Kitazawa +Kitera +Kito +Kitta +Kiuchi +Kiyama +Kiyofuji +Kiyokawa +Kiyokiba +Kiyomoto +Kiyonari +Kiyota +Kiyotake +Kiyozawa +Kizawa +Kizu +Koba +Kobashi +Kobashigawa +Kobata +Kobayakawa +Kobayashi +Kobiyama +Kobori +Koda +Kodaira +Kodaka +Kodama +Koezuka +Koga +Kogawa +Koguchi +Kogure +Kohara +Koharuno +Koike +Koishi +Koiwai +Koizumi +Kojima +Kokubo +Kokubun +Komaeda +Komatsu +Komatsubara +Komiya +Komiyama +Komori +Komura +Komuro +Konagawa +Konaka +Kondo +Konishi +Konno +Kono +Konoe +Konoike +Konomi +Konuma +Kosaka +Koshiba +Koshikawa +Kosugi +Kotegawa +Kotobuki +Kotoge +Kotorida +Koumaru +Koyama +Koyamada +Koyamatsu +Koyanagi +Kozakura +Kuba +Kubo +Kuboki +Kubota +Kuboyama +Kudo +Kugimiya +Kumabayashi +Kumada +Kumagai +Kumai +Kumaki +Kumakiri +Kumashiro +Kumazaki +Kumazawa +Kunii +Kunikida +Kunimoto +Kunimura +Kunitake +Kunitomo +Kuniyoshi +Kuno +Kurakawa +Kuramochi +Kuramoto +Kuranari +Kurata +Kure +Kuribayashi +Kurihara +Kurimoto +Kurino +Kurisu +Kurita +Kuriyama +Kuroda +Kuroeda +Kuroiwa +Kurokawa +Kuroki +Kuronuma +Kurosawa +Kuroshima +Kurotori +Kuroyanagi +Kurumada +Kusachi +Kusaka +Kusakabe +Kusakari +Kusakawa +Kusamura +Kusanagi +Kusao +Kusayanagi +Kushibiki +Kushida +Kusuda +Kusumoto +Kusunoki +Kusunose +Kutaragi +Kutsukake +Kutsuki +Kuwabara +Kuwada +Kuwahara +Kuwamoto +Kuwano +Kuwashima +Kuwata +Kuwayama +Kuwazawa +Kuwazuru +Kyoguchi +Kyoya +Mabuchi +Mabuki +Machi +Machida +Machii +Madoka +Maeba +Maeda +Maehara +Maehata +Maekawa +Maeshiro +Maeyama +Maeyamada +Maezuka +Makabe +Makara +Maki (name) +Makihara +Makihira +Makino +Makio +Makishima +Makiyama +Manabe +Managi +Manaka +Manatsu +Mano +Marumo +Maruo +Marutaka +Maruya +Maruyama +Masada +Masaki +Masamune +Masaoka +Mase +Mashiba +Mashima +Masuchi +Masuda +Masui +Masukawa +Masuko +Masuo +Masuyama +Matoba +Matsuba +Matsubara +Matsubayashi +Matsuda +Matsugae +Matsui +Matsukata +Matsukawa +Matsuki +Matsumae +Matsumiya +Matsumoto +Matsumura +Matsunae +Matsunaga +Matsunami +Matsuno +Matsuo +Matsuoka +Matsushige +Matsushima +Matsushita +Matsutani +Matsutomo +Matsutoya +Matsuura +Matsuya +Matsuyama +Matsuzaka +Matsuzaki +Matsuzawa +Mawatari +Mayuzumi +Michigami +Michihara +Michiki +Midori +Midorikawa +Mifune +Mihara +Mihashi +Miike +Mikami +Mikawa +Miki +Mikimoto +Mikumo +Mikuni +Mikuriya +Mimori +Mimoto +Mimura +Minagawa +Minami +Minamida +Minamino +Minase +Minato +Minazuki +Minegishi +Mineshima +Minowa +Misaki +Mishima +Mishin +Misumi +Mita +Mitamura +Mitani +Mitarai +Mitsubayashi +Mitsuda +Mitsugi +Mitsuhara +Mitsuhashi +Mitsuhira +Mitsui +Mitsukuri +Mitsumori +Mitsumune +Mitsuoka) +Mitsurugi +Mitsuura +Mitsuyoshi +Miuchi +Miura +Miwa +Miya +Miyagahara +Miyagawa +Miyagi +Miyagishima +Miyahara +Miyahira +Miyaji +Miyajima +Miyakawa +Miyake +Miyama +Miyamae +Miyamoto +Miyamura +Miyano +Miyanoue +Miyao +Miyasaka +Miyasato +Miyashiro +Miyashita +Miyata +Miyatake +Miyauchi +Miyawaki +Miyazaki +Miyazato +Miyazawa +Miyoshi +Mizoguchi +Mizubayashi +Mizugami +Mizuhara +Mizuhashi +Mizui +Mizukawa +Mizuki +Mizukoshi +Mizumoto +Mizumura +Mizunaga +Mizuno +Mizusaki +Mizusawa +Mizushima +Mizuta +Mizutani +Mochida +Mochizuki +Mogaki +Momoi +Mori +Morihara +Morikawa +Morikubo +Morimi +Morimoto +Morimura +Morinaga +Morinaka +Morino +Morioka +Morisaka +Morisaki +Morishige +Morishima +Morishita +Morita +Moritani +Moritsugu +Moriuchi +Moriwaki +Moriya +Moriyama +Moriyasu +Morizawa +Morohoshi +Morosawa +Morozumi +Motegi +Motohashi +Motoi +Motoki +Motomura +Motoshima +Motoya +Motoyama +Mukaiya +Mukoda +Mukojima +Munakata +Munekata +Munemori +Muneta +Munetomo +Mura +Murahama +Murai +Murakami +Murakawa +Muraki +Muramatsu +Muramoto +Muranaka +Murano +Muraoka +Murase +Murashige +Murata +Murayama +Murofushi +Muroi +Murota +Muroya +Murozono +Muta +Muto +Mutsumi +Myojin +Nabatame +Nagabuchi +Nagahama +Nagahata +Nagai +Nagakawa +Nagaku +Nagakura +Nagamatsu +Nagamine +Naganawa +Nagano +Naganuma +Nagaoka +Nagara +Nagasaki +Nagasako +Nagasato +Nagasawa +Nagase +Nagashima +Nagasone +Nagasu +Nagata +Nagatani +Nagato +Nagatomo +Nagatsuka +Nagatsuma +Nagayama +Nagisa +Naito +Naka +Nakabayashi +Nakachi +Nakada +Nakae +Nakagaichi +Nakagaki +Nakagami +Nakagawa +Nakahara +Nakai +Nakaido +Nakaima +Nakajima +Nakajo +Nakama +Nakamaki +Nakamaru +Nakamatsu +Nakamichi +Nakamoto +Nakamura +Nakanishi +Nakano +Nakaoka +Nakasako +Nakasato +Nakasone +Nakata +Nakatake +Nakatani +Nakatsu +Nakatsuka +Nakauchi +Nakaya +Nakayama +Nakazato +Nakazawa +Nambu +Namekata +Namigata +Namikawa +Namino +Namioka +Namura +Nanao +Nanase +Nanbu +Naoe +Nara +Narabayashi +Narahashi +Narazaki +Narimatsu +Narita +Narumi +Naruse +Nashida +Nashimoto +Nashiro +Nasu +Natori +Natsui +Natsuka +Natsukawa +Natsuki +Natsume +Natsumi +Negishi +Nemoto +Nihei +Niimi +Niiya +Niiyama +Niizuma +Nikaido +Nimura +Ninagawa +Ninomiya +Nishi +Nishida +Nishiguchi +Nishihara +Nishihira +Nishii +Nishijima +Nishikawa +Nishikori +Nishime +Nishimori +Nishimoto +Nishimura +Nishina +Nishino +Nishio +Nishiogi +Nishioka +Nishitani +Nishiyama +Nishizaki +Nishizawa +Niwa +Noborisaka +Noborizato +Nobumoto +Nobutoki +Nogaito +Nogami +Noguchi +Nohira +Noiri +Nojima +Nojiri +Nokubo +Nomoto +Nomura +Nonaka +Nonomura +Nonoshita +Norimoto +Noro +Nosaka +Noshitani +Notsuda +Nozaki +Nozawa +Nozuki +Nunomaki +Nutahara +Oba +Obari +Obata +Obayashi +Obokata +Obonai +Ochi +Ochiai +Oda +Odagiri +Oe +Ofuji +Ogaeri +Ogasawara +Ogata +Ogawa +Ogi +Ogihara +Ogino +Ogita +Ogiwara +Ogoe +Oguchi +Ogura +Ogushi +Ohara +Ohashi +Ohata +Ohori +Ohta +Oikawa +Oimatsu +Oizaki +Ojima +Oka +Oka +Okabayashi +Okabe +Okada +Okajima +Okakura +Okamoto +Okamura +Okano +Okawara +Okayama +Okazaki +Oketani +Oki +Okiayu +Okiishi +Okimoto +Okino +Okita +Oku +Okubo +Okuda +Okuhara +Okui +Okuma +Okumoto +Okumura +Okutani +Okuyama +Okuzawa +Omigawa +Ominami +Omotehara +Omura +Omuro +Onaga +Onaka +Onchi +Onishi +Onizuka +Ono +Onoda +Onodera +Onozawa +Onuki +Onuma +Oishi +Ooka +Okawa +Omori +Osaki +Osako +Osugi +Ozora +Orihara +Osafune +Osaka +Osanai +Osaragi +Osawa +Oshikawa +Oshima +Oshio +Oshiro +Oshita +Oshitani +Osumi +Otaka +Otani +Otomo +Otonashi +Otori +Otosaka +Otsu +Otsubo +Otsue +Otsuka +Ouchi +Oya +Oyadomari +Oyama +Oyamada +Ozaki +Ozawa +Rai +Rakuyama +Renbutsu +Rokuda +Sada +Sadanaga +Sadatomi +Sado +Saeki +Sagara +Sagawa +Sahashi +Saikachi +Saikawa +Saionji +Saito +Sakagami +Sakaguchi +Sakahara +Sakai +Sakakibara +Sakakura +Sakamoto +Sakamura +Sakano +Sakanoue +Sakata +Sakate +Sakazume +Sakemoto +Sakimoto +Sakino +Sakisaka +Sakita +Sakoda +Sakuda +Sakuma +Sakura +Sakuraba +Sakurabi +Sakurada +Sakurai +Sakurano +Sakurauchi +Sakurazawa +Samejima +Sameshima +Sanada +Sanematsu +Sanenobu +Saneto +Saneyoshi +Sanmaido +Sanmiya +Sano +Sano +Saotome +Saruhashi +Sarusawa +Saruwatari +Sasabe +Sasada +Sasagaki +Sasagawa +Sasahara +Sasai +Sasajima +Sasakawa +Sasaki +Sasakura +Sasamoto +Sasano +Sasanuma +Sasazaki +Sase +Sashihara +Sato +Satomi +Satomura +Satouchi +Satsukawa +Satsuki +Sawa +Sawada +Sawai +Sawairi +Sawaki +Sawamatsu +Sawamura +Sawano +Segawa +Seki +Sekido +Sekiguchi +Sekimoto +Sekine +Sekizuka +Seko +Sengoku +Senuma +Senzaki +Serizawa +Seto +Setoguchi +Shiba +Shibahara +Shibakoya +Shibamoto +Shibamura +Shibasaki +Shibata +Shibazaki +Shibukawa +Shibutani +Shibuya +Shichi +Shiga +Shigaki +Shigematsu +Shigemitsu +Shigemoto +Shigeno +Shigenobu +Shigeta +Shigezono +Shihomi +Shiina +Shiizaki +Shikata +Shikida +Shima +Shimabukuro +Shimada +Shimahara +Shimakawa +Shimaki +Shimakura +Shimamiya +Shimamoto +Shimamura +Shimanuki +Shimaoka +Shimatani +Shimazaki +Shimizu +Shimoda +Shimoi +Shimoji +Shimokawa +Shimomura +Shimono +Shimotori +Shimotsuki +Shimoyama +Shimoyanagi +Shimozawa +Shimura +Shina +Shinbo +Shindo +Shinjo +Shinkawa +Shinoda +Shinohara +Shinoyama +Shinozaki +Shinozuka +Shintake +Shintaku +Shintani +Shinya +Shinzaki +Shioda +Shiokawa +Shiomi +Shiono +Shionoya +Shiota +Shiotani +Shioura +Shioya +Shioyama +Shiozawa +Shirahata +Shirai +Shiraishi +Shirakawa +Shiraki +Shirakura +Shiranui +Shirasaki +Shirata +Shiratori +Shirayanagi +Shiroma +Shiroo +Shirota +Shiroyama +Shishido +Shishikura +Shishiuchi +Sho +Shoda +Shoji +Shojo +Shoshi +Shukuzawa +Soejima +Soga +Sogabe +Soma +Sone +Soneta +Sonoda +Sonohara +Sonoyama +Sonozaki +Sorayama +Sorimachi +Sotomura +Soyeda +Suegara +Suehiro +Suekichi +Suematsu +Suenaga +Suetsugu +Sugai +Sugamoto +Sugano +Suganuma +Sugawara +Sugaya +Sugeno +Sugi +Sugibayashi +Sugie +Sugihara +Sugii +Sugimoto +Sugimura +Sugino +Sugioka +Sugisaki +Sugishita +Sugita +Sugitani +Sugiura +Sugiyama +Suguri +Sumeragi +Sumida +Sumii +Sumimoto +Sumioka +Sumiyoshi +Sunahara +Sunakawa +Sunohara +Sunouchi +Suwa +Suyama +Suzaki +Suzuki +Suzuoki +Tabara +Tabata +Tabei +Tabuchi +Tachi +Tachibana +Tachimoto +Tachino +Tachizaki +Tada +Tadamori +Tadokoro +Tagami +Tagashira +Tagawa +Taguchi +Taichi +Taira +Tajima +Tajiri +Taka +Takabayashi +Takachi +Takada +Takaezu +Takagaki +Takagawa +Takagi +Takahara +Takahashi +Takahata +Takahide +Takaishi +Takaki +Takakura +Takakuwa +Takamatsu +Takami +Takamine +Takamiya +Takamori +Takamoto +Takamura +Takanaka +Takanashi +Takano +Takao +Takaoka +Takasaki +Takase +Takashima +Takashina +Takasugi +Takata +Takatani +Takato +Takaya +Takayama +Takayanagi +Takayasu +Takazaki +Takeba +Takeda +Takegahara +Takehara +Takehisa +Takehora +Takei +Takeichi +Takekawa +Takemi +Takemoto +Takemura +Takenaga +Takenaka +Takeno +Takeoka +Takesaki +Takeshima +Takeshita +Taketsuru +Takeuchi +Takewaka +Takewaki +Takeya +Takeyama +Takigawa +Takiguchi +Takii +Takimoto +Takita +Takiyama +Takizawa +Takuma +Takumi +Tamabayashi +Tamagawa +Tamaki +Tamakoshi +Tamashiro +Tamayama +Tamiya +Tamura +Tanaami +Tanahashi +Tanaka +Tanamura +Taneda +Tanemoto +Tanemura +Tani +Tanigaki +Tanigawa +Taniguchi +Taniike +Tanikawa +Tanimoto +Tanimura +Tanioka +Taniyama +Tanonaka +Tanoue +Tanuma +Taohata +Tasaka +Tashima +Tashiro +Tatekawa +Tateno +Tateyama +Tatsuhara +Tatsuki +Tatsumi +Tatsuta +Tatsuyoshi +Tawada +Tayama +Tazawa +Teguramori +Tenjin +Terada +Terajima +Teramoto +Teramura +Teranishi +Teraoka +Terasaki +Terashima +Terata +Terauchi +Terawaki +Terayama +Teruya +Teshigahara +Teshima +Tetsuto +Tezuka +Tobe +Toda +Todoroki +Togami +Togan +Togashi +Togawa +Tojo +Tokashiki +Toki +Tokioka +Tokita +Tokiwa +Toko +Tokuda +Tokugawa +Tokui +Tokumoto +Tokunaga +Tokura +Tokushige +Tokuyama +Tomihari +Tomii +Tomiie +Tominaga +Tominari +Tomioka +Tomisawa +Tomita +Tomiyama +Tomizawa +Tomochika +Tomonaga +Tomori +Tonari +Tonegawa +Tonoike +Tonokura +Tonomura +Tonouchi +Torikai +Toriyama +Tosaka +Tosaka +Toyama +Toyoda +Toyokawa +Toyonaga +Toyoshima +Toyota +Tozawa +Tsubobayashi +Tsuboi +Tsubota +Tsubouchi +Tsuburaya +Tsuchida +Tsuchie +Tsuchihashi +Tsuchimoto +Tsuchiya +Tsuchiyama +Tsuda +Tsuetaki +Tsuji +Tsujihara +Tsujii +Tsujimoto +Tsujimura +Tsujio +Tsukada +Tsukagawa +Tsukagoshi +Tsukamoto +Tsukuda +Tsumori +Tsumura +Tsunakake +Tsunawaki +Tsunematsu +Tsuru +Tsurumaki +Tsurumi +Tsuruno +Tsushima +Tsutsui +Tsutsumi +Tsuzuki +Tsuzurahara +Ubukata +Uchibayashi +Uchida +Uchikawa +Uchikoshi +Uchima +Uchimura +Uchino +Uchiyama +Uda +Uechi +Ueda +Uegaki +Uehara +Uehashi +Ueki +Uekusa +Uematsu +Uemoto +Uemura +Ueno +Uesaka +Uesato +Ueshiba +Uesugi +Ueta +Ueto +Ueyama +Ueyonabaru +Ugaki +Ugumori +Ujihara +Ukita +Umebayashi +Umeda +Umehara +Umeji +Umeki +Umemoto +Umemura +Umesaka +Umezaki +Umezawa +Unetani +Uozumi +Uragami +Uramoto +Uranishi +Urano +Urata +Urayama +Urushibara +Usami +Usatsuka +Ushijima +Ushioda +Usui +Utada +Utagawa +Utsumi +Uwasawa +Wada +Wakabayashi +Wakai +Wakaizumi +Wakaki +Wakamatsu +Wakamoto +Wakamura +Wakao +Wakasugi +Wakatsuki +Wakayama +Wakayoshi +Waki +Wakimoto +Wakino +Wakisaka +Wakita +Wakiya +Wakui +Watabe +Watai +Watanabe +Watanuki +Watari +Watase +Watsuji +Yabuchi +Yabuta +Yada +Yadama +Yaegashi +Yagami +Yagi +Yaginuma +Yaguchi +Yagura +Yahiro +Yajima +Yakushimaru +Yama +Yamabe +Yamada +Yamagata +Yamagishi +Yamaguchi +Yamahana +Yamaji +Yamakawa +Yamamoto +Yamamura +Yamamuro +Yamanaka +Yamanami +Yamane +Yamanishi +Yamano +Yamaoka +Yamasaki +Yamase +Yamashina +Yamashiro +Yamashita +Yamataka +Yamato +Yamauchi +Yamazaki +Yanaga +Yanagawa +Yanagi +Yanagida +Yanagidate +Yanagihara +Yanagimachi +Yanagimoto +Yanagisawa +Yanagita +Yanase +Yanoguchi +Yara +Yashida +Yashiki +Yashima +Yashiro +Yasuda +Yasue +Yasukawa +Yasukochi +Yasumi +Yasumoto +Yasumura +Yasunaga +Yasuraoka +Yasutake +Yauchi +Yazawa +Yoda +Yodogawa +Yokoi +Yokomizo +Yokono +Yokosawa +Yokota +Yokouchi +Yokoyama +Yonamine +Yoneda +Yonehara +Yonemoto +Yonemura +Yoneno +Yoneshige +Yoneyama +Yonezawa +Yoritaka +Yoshida +Yoshie +Yoshigahara +Yoshihara +Yoshii +Yoshiie +Yoshikawa +Yoshikuni +Yoshimatsu +Yoshimi +Yoshimori +Yoshimoto +Yoshimura +Yoshimuta +Yoshinaga +Yoshino +Yoshio +Yoshitaka +Yoshitake +Yoshiya +Yoshiyama +Yoshiyuki +Yoshizaki +Yoshizawa +Yoshizumi +Yuda +Yuguchi +Yuhara +Yui +Yukawa +Yuki +Yukimura +Yukimuro +Yukisada +Yumi +Yumoto +Yuruki +Yutani +Yuzawa +Yuzuki +Zaizen +Zayasu \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/old_norse_bothgenders.txt b/src/main/resources/assets/customnpcs/markovnames/old_norse_bothgenders.txt new file mode 100644 index 000000000..d47eccba3 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/old_norse_bothgenders.txt @@ -0,0 +1,1065 @@ +Aðaliz +Aðallaug +Aðalmærki +Ádís +Ádísa +Aðísla +Áfríðr +Ágáða +Agata +Ágáta +Agatha +Agattha +Agða +Agdis +Agilamundō +Agvtthv +Ágærðr +Aldís +Aldríf +Aldviðr +Alfdís +Álfdís +Álfeiðr +Alffinna +Alfgerðr +Álfgerðr +Alfheiðr +Alfhilda +Alfhildr +Álfhildr +Alfífa +Alflaug +Alfný +Alfrún +Alhildr +Alhiltr +Allaug +Allogia +Almveig +Alví +Alvíg +Alvǫr +Álǫf +Alþrúðr +Ama +Áma +Amba +Amgerðr +Ámgerðr +Amma +Ámóða +Angeyja +Angrboða +Anna +AnsufriþioR +Arinbjǫrg +Arinborg +Aringærðr +Arinví +Arna +Arnbiorg +Arnbiǫrg +Arnbjǫrg +Arnborg +Arndís +Arndísa +Arneiðr +Arnfasta +Arnfríðr +Arngerðr +Arngunnr +Arngærðr +Arnheiðr +Arnhildr +Arnkatla +Arnlaug +Arnleif +Arnljót +Arnóra +Arnríðr +Arnvé +Arnví +Arnþóra +Arnþrúðr +Ása +Ásbera +Asbiorg +Ásbiǫrg +Ásbjǫrg +Ásdís +Ásfríðr +Ásgauta +Ásgerða +Ásgerðr +Ásgunnr +Ásgærðr +Áshilda +Áshildr +Áskatla +Áslaug +Ásleif +Ásmóð +Ásboð +Ásný +Asriðr +Ásríðr +Ásta +Astríðr +Ástríðr +Ásunn +Ásví +Ásvǫr +ÁsælfR +Atla +Auða +Auðbjǫrg +Auðfríðr +Auðgerðr +Auðguðr +Auðgærðr +Auðhelga +Auðhildr +Auðhumla +Auðný +Auðr +Auðumbla +Auðumla +AuðælfR +Auþa +Aþmiul +Íma +Bára +Baugeið +Baugeiðr +Baugheiðr +Baunila +Begga +Bekkhildr +Bera +Bergdís +Berghildr +Bergliót +Bergljót +Bergþóra +Bersa +Bestla +Beyla +Biargey +Bil +Biollok +Birla +Birna +Birsa +Bitra +Biǫrg +Bjargey +Bjarnhildr +Bjarnilla +Bjartey +Bjollok +Bjǫrg +Bjǫrt +Blankiflúr +Blóðughadda +Bófríðr +Borga +Borghilda +Borghildr +Borgildr +Borgný +Borgunna +Bót +Bótey +Bótfríðr +Bótheiðr +Bóthilda +Bóthildr +Bóthæiðr +Bótvé +Bótví +Brák +Bráma +Brana +Brettifa +Brigida +Bryngerðr +Brynhilda +Brynhildr +Buna +Bylgja +Bǫðný +Böðvildr +Dagheiðr +Dagmær +Dagný +Dagrún +Dalla +Dana +Dís +Dísa +DísælfR +Dómhilda +Dómhildr +Dóta +DóttiR +Drífa +Droplaug +Drumba +Drǫfn +Dúfa +Dýrfinna +Dýrhildr +Edda +Eðna +Egilleif +Eir +Eirný +Eistla +Eldfríðr +Eldríðr +Ellisif +Elsebe +Elseby +Embla +Esja +Eydís +Eyfura +Eygerðr +Eyia +Eyildr +Eyja +Eylaug +Eyvǫr +Fasta +Fastgærðr +Fasthæiðr +Fastlaug +Fastný +Fastríðr +Faství +Fenja +FingR +Finna +Fiǫlmóð +Fiǫrleif +Fjǫlvǫr +Fjǫrleif +Foldheiðr +Folka +Folkví +Freydís +Freygerðr +Freyja +Fríða +Friðgerðr +Fríðr +FriðælfR +Frigg +Frøydís +Frøygærðr +Frøyguðr +Frøygunnr +Frøylaug +Fulla +Fǫnn +Gás f +Gauthildr +Gefion +Gefjon +Gefjun +Gefn +Geira +Geirahǫd +Geirahǫð +Geiravǫr +Geirbiǫrg +Geirbjǫrg +Geirdís +Geirdriful +Geirhildr +Geirlaug f +Geirný +Geirríðr +Geirrǫmul +Geirrǫndul +Geirrǫnul +Geirskǫgul +Geirskǫgull +Geirvǫr +Geirǫlul +Geirǫmul +Geirǫnul +Geirþrúðr +Gerðr +Gertrud +Giaflaug +Gígja +Gilla +Gillaug +Ginna +Ginnlaug +Gísla +Gíslaug +Gjaflaug +Glóa +Glyrna +Gná +Gói f +Greilǫð +Greip f +Grélǫð +Gríð +Gríðr +Gríma f +Grímhildr +Gró +Gróa +Guðbiǫrg +Guðbjǫrg +Guðfinna +Guðfríðr +Guðlaug +Guðleif +Guðmóð +Guðný +Guðr +Guðríðr +Guðrún +Guðvé +Guðveig +Guðví +Guðvǫr +GuðælfR +Gulla +Gullaug +Gullveig +Gulløy +Gunna +Gunnbiǫrg +Gunnbjǫrg +Gunnborga +Gunnfríðr +Gunngerðr +Gunnheiðr +Gunnhilda +Gunnhildr +Gunnhæiðr +Gunnlaug +Gunnleif +Gunnlǫð +Gunnr +Gunnríðr +Gunnuðr +Gunnvǫr +GunnælfR +Gunnþrúðr +Gyða +Gyðja +Gylla +Gyra +Gyríðr +Gýríðr +GæiRa +GæiRfríðr +GæiRhildr +GæiRlaug +GæiRunnr +GæiRví +GæiRvǫr +Gǫll +Gǫndul +Gǫndull +Hábera +Hadda +Hafþóra +Hagný +Halla +Hallabera +Hallbera +Hallbiǫrg +Hallbjǫrg +Halldís +Halldóra +Hallfríðr +Hallgerðr +Hallgríma +Hallkatla +Hallótta +Hallríðr +Hallveig +Hallvǫr +Haurlaug +Heðindís +Heðinfast +Heðingunnr +Heðinví +Hefring +Heiðr +Heiðrún +Heimlaug +Hel +Helga +Herbjǫrg +Herborg +Herborga +Herdís +Herfjǫtur +Herfríðr +Hergerðr +Hergunnr +Herja +Herríðr +Hervǫr +Herþrúðr +Hetha +Hialmdís +Hiálmgerðr +Hialmlaug +Hiálp +Hiðindís +Hiðinfast +Hiðingunnr +Hiðinví +Hilda +Hildeborg +Hildibjǫrg +Hildigerðr +Hildigunnr +Hildiriðr +Hildiríðr +Hildr +Hildriðr +Hildríðr +Himinglæva +Hjalmgerðr +Hjálmgerðr +Hjalmþrimul +Hjalmþrimull +Hjálp +Hjǫlp +Hjǫrdís +Hjǫrgunnr +Hjǫrthrimul +Hjǫrþrimul +Hlaðgerðr +Hlaðguðr +Hlaðgunnr +Hlédís +Hlégunnr +Hleiðr +Hlíf +Hlífa +Hlífhildr +Hlíføy +Hlífþrasa +Hlín +Hlǫkk +Holma +Holmdís +Holmfríðr +Hólmfríðr +Holmgærðr +Holmlaug +Hólmlaug +Holmví +Hrafnhildr +Hrefna +Hreiðunn +Hreiðunna +Hreiðunnr +Hremsa +Hrímgarðr +Hringia +Hringja +Hrist +Hróða +Hróðgerðr +Hróðgærða +Hróðlaug +Hróðný +Hróðví +HróðælfR +Hrund +Hræfna +Hrǫnn +Huld +Hulð +Hulda +Húngerðr +Húnvǫr +Hvít +Hyrrokkin +Hæilví +Hæimlaug +Hælga +Hælgunnr +Hæra +Hærfríðr +Hærlæif +Hærþrúðr +Hǫð +Hǫdd +Hǫrn +Iðunn +Iðunnr +Ígulfríðr +Ilmr +Ingiberg +Ingibiǫrg +Ingibjǫrg +Ingiborg +Ingifast +Ingifríðr +Ingigerðr +Ingigunnr +Ingigærðr +Ingilaug +Ingileif +Ingilæif +Ingimóð +Ingirida +Ingiríðr +Ingirún +Ingiøy +Ingiþóra +Ingríðr +Ingunn +Ingunnr +Ingveldr +Ingvǫldr +Iófast +Iófríðr +Iógærðr +Iórhildr +Ióríðr +Iórunn +Iórunnr +Irpa +Ísfríðr +Ísgerðr +Ísleif +Ísríðr +Iǫfurfast +Iǫfurfríðr +Iǫfurfǫst +Jarð +Jarðþrúðr +Jarngerðr +Járngerðr +Járnsaxa +Jarþrúðr +Jóðdís +Jóðhildr +Jódís +Jófríðr +Jóra +Jóreiðr +Jórheiðr +Jórhildr +Jóríðr +Jórunn +Jórunna +Jǫrð +Kaðlín +Kalda +Kára +Kárhildr +Káta +Katla +Ketilbjǫrg +Ketillaug +Ketilríðr +Ketilvé +Kiǫlvǫr +Kjǫlvǫr +Kolbrún +Kolfinna +Kolga +Kolgríma +Kolka +Kolla +Kolþerna +Kormlǫð +Kristrún +Kyi +Kyriþ +Kætilfríðr +Kætilgærðr +Kætillaug +Kætillauga +Kætilví +KætilælfR +Kætiløy +Laufey +Leiðvǫr +Leikný +Líf +Lífa +Líføy +Líknví +Línhildr +Listvǫr +Ljóðey +Ljót +Ljóta +Ljótunnr +Ljúfvina +Lofn +Lofnheiðr +Lopthæna +Lopthœna +Lyngheiðr +Mabil +Mábil +Magga +Magna +Magnhilda +Magnhildr +Málfríðr +Mallymkun +Malmfríðr +Malmury +Mardǫll +Margerðr +Marsibil +Marzibil +Melkorka +Menglǫð +Mette +Mildríðr +Mist +Miǫll +Mjaðveig +Mjǫll +Móbil +Móða +Móðguðr +Móðgunnr +Móðir +Mundgerða +Mundgerðr +Mundgærðr +Mungærðr +Myrgiol +Myrgiǫl +Myrgjol +Mýrún +Mær +MáR +Nál +Nanna +Nefja +Niðbiǫrg +Nótt +Oda +Óðalfríðr +Oddbiǫrg +Oddbjǫrg +Oddfríðr +Oddgerðr +Oddkatla +Oddlaug +Oddleif +Oddný +Oddrún +Oddvǫr +Oðin +Ólaug +Ólof +Ólæif +Ólǫf +Ormfríðr +Ormhildr +Ósk +Ótama +Otkatla +Ráðgerðr +Ráðgríð +Radgríðr +Ráðgríðr +Ráðný +Ráðveig +Rafarta +Rafnhildr +Raghnilldr +Ragna +Ragnbiǫrg +Ragnborg +Ragndid +Ragneiðr +Ragnfriðr +Ragnfríðr +Ragnheiðr +Ragnhilda +Ragnhildr +Ragnogh +Ragnveig +Ragnví +Ragnvæig +Ragnvǫr +RagnælfR +Ragnþrúðr +Rán +Randalín +Randgnid +Randgríðr +Randid +Randví +Raneigh +Rangdid +Rangrið +Ranka +Rannavg +Ranndtuoig +Ranneigh +Rannoff +Rannog +Rannogh +Rannok +Rannow +Rannueg +Rannueig +Rannueigh +Rannueyg +Rannugh +Rannuæigh +Rannveig +Rannveyg +Rannvæig +Rannwæigh +Rannæy +Ranog +Ranueidgh +Ranueig +Ranueigh +Ranueyg +Ranuig +Ranuæigh +Ranveg +Ranveigh +Ranveyg +Ranveygh +Ranvæig +Ranvæigh +Ranæigh +Reginleif +Reginleifr +Reiðunn +Ríkví +Rinda +Rindr +Riúpa +Rjúpa +Róðný +Rognogh +Rognok +Rollov +Ronnaugh +Ronndoug +Ronnoc +Ronnoch +Ronnog +Ronnogh +Ronnok +Ronnongh +Ronnoogh +Ronnoug +Ronnow +Ronog +Ronogh +Róta +Runa +Rúna +Rúnfríðr +Rǫgnveig +Rønnou +Rǫskva +Sága +Salbiǫrg +Salbjǫrg +Saldís +Salgerðr +Sandøy +Sangriðr +Sangríðr +Sanngriðr +Sanngríðr +Sásgærðr +Saumlǫð +Sefa +Sibba +Síða +Sif +Sigbiǫrg +Sigbjǫrg +Sigfríðr +Sigga +Siggun +Siggunnr +Siglaug +Signi +Signý +Sigrdríf +Sigrdrífa +Sigrfljóð +Sigrid +Sigríða +Sigríðr +Sigrlinn +Sigrúðr +Sigrún +Sigunnr +Sigvei +Sigveig +Sigvin +Sigvæig +Sigvǫr +Sigyn +Sigþrúðr +Simlǫð +Sjǫfn +Skaði +Skaga +Skalmǫld +Skeggjǫld +Skeggǫld +Skírlaug +Skjalddís +Skjaldgerðr +Skjaldvǫr +Skjalf +Skjǫlf +Skuld +Skǫgul +Skǫgull +Sniólaug +Snjófríðr +Snót +Snotra +Snæfríðr +Snælaug +Snœfríðr +Sofie +Sólbjǫrt +Sólveig +Sóma +Steinbiǫrg +Steinbjǫrg +Steinfríðr +Steingerðr +Steinhildr +Steinný +Steinríðr +Steinunnr +Steinvǫr +Stygg +Stynfríðr +Stæina +Stæinborg +Stæinfríðr +Stæinhildr +Stæinlaug +Sunnifa +Sunniuæ +Sunnlǫð +Svafa +Sváfa +Svala +Svana +Svanbjǫrg +Svanborg +Svanhildr +Svanhvít +Svanlaug +Sveid +Sveið +Svipul +Svipull +Svæina +Svæinhæiðr +Sylgja +Syn +Systa +Sæhildr +Sæuðr +Sæunn +Sæunnr +Sǫlrún +Sǫlva +Sǫlveig +Sǫlvǫr +Søyvǫr +Tanngnidr +Tanngniðr +Tekla +Thekla +Tíðfríðr +Tófa +Tóka +Tóla +Tolla +Tonna +Tóra +Trana +Uðr +Úlfarna +Úlfeiðr +Ulfheiðr +Úlfheiðr +Ulfhildr +Úlfhildr +Ulfrún +Úlfrún +Ulvhildr +Una +Undrlaug +Unna +Unnr +Urðr +Valborg +Valdís +Valgerðr +Valka +Vanadís +Vár +Vébiǫrg +Vébjǫrg +Védís +Véfreyja +Véfríðr +Végerðr +Vélaug +Véný +Verdandi +Verðandi +Víborg +Víf +Vífríðr +Vigdís +Vígdís +Víguðr +Vígundr +Vígærðr +Vilborg +Vilgerðr +Vírún +Visna +Wīwijō +Wiwjō +VíælfR +Vór +Vrindr +Vǫr +Ynghildr +Yngvildr +Yngvǫr +Yri +Ýri +Yrr +Ýrr +Yrsa +Ægileif +Æilíf +Ærinbjǫrg +Ærinborg +Ærindís +Æringunnr +Æringærðr +Ærinví +Ærnbjǫrg +Ærnborg +Ærndís +Ærnfríðr +Ærngærðr +Ærnlaug +Ærnví +Æsa +Ǣsgærðr +Ǣshæiðr +Ǣstríðr +Ætta +Ǫgn +Ǫlhildr +Ǫlrun +Ǫlrún +Ǫlvǫr +Ǫndótt +Øyborg +Øydís +Øyðr +Þióðbjǫrg +Þióðgerðr +Þióðhildr +Þiúð +Þiúðborg +Þiúðhæiðr +Þiúðr +Þiúðví +Þjóðgerðr +Þjóðhildr +Þjóðunn +Þodny +Þone +Þonne +Þonny +Þóra +Þórarna +Þorbera +Þorbiǫrg +Þorbjǫrg +Þordís +Þórdís +Þórelfr +Þórey +Þorfinna +Þórfríða +Þorfríðr +Þórfríðr +Þorgerðr +Þórgerðr +Þorgríma +Þórguðr +Þórgundr +Þorgunna +Þorgunnr +Þórgunnr +Þórgærðr +Þórhalla +Þórheiðr +Þórhildr +Þórhæiðr +Þórildr +Þorkatla +Þorlaug +Þórlaug +Þorleif +Þorljót +Þórlǫf +Þorny +Þorný +Þórný +Þórodda +Þorríðr +Þórríðr +Þóruðr +Þórunn +Þórunnr +Þorvé +Þorveig +Þórví +Þorvǫr +Þórvǫr +Þraslaug +Þrima +Þrúðr +Þrúðrún +Þúfa +Þuríðr +Þúríðr +Þyri +Þyríðr +Þyrna +Þyrwi +Þýrví +Þǫgn \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/roman_cognomina.txt b/src/main/resources/assets/customnpcs/markovnames/roman_cognomina.txt new file mode 100644 index 000000000..b6d12ecbe --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/roman_cognomina.txt @@ -0,0 +1,1021 @@ +Abercius +Abito +Acacius +Acaunus +Achaicus +Acilianus +Adauctus +Adepphius +Adjutor +Adranos +Adventus +Aeacus +Aebutus +Aemilianus +Aetius +Afer +Agaptus +Agatopus +Agelastus +Agorix +Agricola +Agrippa +Agustalis +Ahala +Ahenobarbus +Albanus +Albinius +Albinus +Albucius +Alethius +Allectus +Aloysius +Aluredes +Alypius +Amandus +Amantius +Ambrosius +Amor +Amphion +Anatolius +Ancus +Andronicus +Angelus +Antias +Antius +Anullinus +Apelles +Apellinus +Aper +Apollonarius +Aponius +Aquila +Aquilius +Aquillius +Aratus +Arcadius +Arcavius +Archarius +Arius +Armiger +Arminus +Arpagius +Arrianus +Arruntius +Aruns +Arvina +Asellio +Asina +Asprenas +Asprenus +Assanius +Audaios +Audens +Augendus +Augurnus +Augurius +Augustalis +Augustanus +Augustus +Auila +Aurelianus +Aurelius +Ausonius +Auspex +Auxentius +Auxientius +Auxilius +Avienus +Avitus +Balbillus +Balbus +Bambalio +Bamballio +Banquerius +Barbatus +Baro +Bassus +Bato +Belenus +Belisarius +Bellator +Belletor +Bellicus +Bellus +Bestia +Betto +Bibaculus +Bibulus +Bitucus +Blandus +Bodenius +Bolanus +Bonifatius +Bonosus +Bonus +Bradua +Britannicus +Brocchus +Bromidus +Bruccius +Brucetus +Bruscius +Brutus +Bubo +Buccio +Bulla +Burcanius +Burrus +Buteo +Caecilianus +Caecina +Caecus +Caelistis +Caelestius +Caelianus +Caelinus +Caepio +Caerellius +Caesar +Calacicus +Calatinus +Caldus +Calenus +Calerus +Caletus +Caligula +Callisunus +Calogerus +Calpornius +Calpurnianus +Calpurnis +Calvinus +Calvus +Camerius +Camillus +Campanus +Candidianus +Candidus +Candidius +Canio +Canisius +Cantaber +Capito +Capiton +Caprarius +Caracturus +Carantus +Carbo +Carinus +Carius +Carnifex +Carus +Casca +Cassianus +Castinus +Castorius +Castus +Catianus +Catilina +Cato +Catonius +Catullus +Catulus +Catus +Cecilianus +Celatus +Celer +Celsus +Cenaeus +Cencius +Censorinus +Censorius +Centumalus +Cerialis +Cerinthus +Cerularius +Cervianus +Cervidus +Cethegus +Chlorus +Christianus +Cicero +Cico +Cimber +Cinna +Cinnianus +Cita +Cittinus +Civilis +Clarus +Classicianus +Claudianus +Clemens +Clement +Clodian +Clodianus +Cogitatus +Colias +Collatinus +Columbanus +Columella +Comes +Comitianus +Comitinus +Commidius +Commidus +Commius +Commodus +Concessus +Congrio +Constans +Constantius +Corbulo +Cordus +Cornix +Cornutus +Corvinus +Corvus +Cosmas +Cotentinus +Cotta +Crassus +Cremutius +Crescentius +Cresces +Crispian +Crispin +Crispus +Crito +Crotilo +Cucuphas +Culleolus +Cumanus +Cunobarrus +Cupitas +Curio +Cyprianus +Cyprias +Cyricus +Dacien +Dalmatius +Dama +Damasippus +Damasus +Damian +Dannicus +Dardanius +Dardanus +Decentius +Decianus +Decmitius +Decmus +Dexion +Dexippus +Didicus +Dignus +Dio +Diocletianus +Diocourides +Disertus +Docilinus +Docilus +Dolabella +Dominicus +Domitianus +Donatianus +Donatus +Donicus +Dorotheus +Draco +Drusillus +Drusus +Dubitatius +Dulcitius +Durio +Durus +Duvianus +Eborius +Eburnus +Ecdicius +Eclectus +Egbuttius +Egnatius +Elerius +Eliphas +Elpidius +Elvorix +Emeritus +Encratis +Ennecus +Ennius +Ennodius +Eonus +Epidianus +Epimachus +Epolonius +Erasinus +Esdras +Eudomius +Eudoxius +Eugenius +Eugenus +Eulogius +Eumenius +Eunapius +Euphemius +Eustacius +Eutherius +Evodius +Excingus +Exsupereus +Exuperantius +Exupertus +Fabianus +Fabillus +Facilis +Fadus +Fagus +Falco +Falconius +Falx +Famia +Familiaris +Fastidius +Farus +Faustillus +Faustinianus +Faustinius +Faustus +Faventinus +Felicissimus +Felissimus +Felix +Ferentinus +Ferreolius +Festus +Fidelis +Figulus +Fimbria +Fimus +Firminus +Firmus +Flaccus +Flamma +Flavian +Flavianus +Flavillus +Flavinus +Florens +Florentius +Florianus +Florus +Forianus +Fortunatus +Fraucus +Fredisius +Frigidian +Frontalis +Frontinus +Fronto +Fructosis +Frugi +Frugius +Frumentius +Fullofaudes +Fulvianus +Furius +Fuscinus +Fuscus +Gaianus +Gaius +Gala +Galarius +Galenus +Galerus +Gallio +Gallus +Galvisius +Garilianus +Gaurus +Gavros +Gavrus +Gelasius +Gellius +Gemellus +Geminianus +Generidus +Genesius +Genialis +Gennadius +Gerardus +Germanus +Germanicus +Gessius +Geta +Getha +Glabrio +Glaucia +Globulus +Gluvias +Glycia +Gordian +Gordianus +Gordio +Gorgonius +Gracchus +Gracilis +Gratian +Gratidianus +Grattus +Gregorius +Grumio +Gualterus +Gryllus +Habitus +Hadrianus +Hardalio +Haterius +Helvius +Herculius +Herenus +Herma +Hermina +Hesychius +Hiberus +Hilario +Hilaris +Hilarius +Hirpinius +Hirrus +Homullus +Honoratus +Horatius +Hortensis +Hortensius +Hortensus +Hosidius +Humilus +Hybrida +Iacomus +Igennus +Ignatius +Indaletius +Indus +Ingenuus +Ingenvinus +Iocundus +Iovinus +Irenaeus +Isatis +Isauricus +Italicus +Ivmarus +Ianuarius +Iavolenus +Iovinianus +Iovinus +Iovius +Iuba +Iulian +Iulianus +Iuncinus +Iuncus +Iunianus +Iustianus +Iustinianus +Iustinus +Iustus +Iuvenlis +Labienus +Lactantius +Laeca +Laenas +Laetinianus +Laevinus +Larcius +Lartius +Lateranus +Latinius +Laurentius +Leddicus +Lentullus +Lentulus +Leon +Leontius +Lepidus +Lepontus +Leptis +Libanius +Liberalis +Libo +Licinianus +Licinius +Ligur +Ligustinus +Limetanus +Linus +Litorius +Littera +Litumaris +Livianus +Livigenus +Longinus +Lovernianus +Lovernius +Lucan +Lucanus +Lucianus +Lucius +Luccius +Lucceius +Lucilianus +Lucretius +Luctacus +Lucullus +Lunaris +Luonercus +Lupercus +Lupicinus +Lupinus +Lupis +Lurco +Lurio +Lutherius +Lutorius +Maccalus +Macrinus +Macro +Macrobius +Mactator +Maecenus +Maecius +Magnentius +Magnus +Magunnus +Maius +Major +Malchus +Mallus +Maltinus +Mancinus +Manlius +Mansuetus +Marcallas +Marcellinus +Marcellus +Marcialis +Marcipor +Margarita +Marinianus +Marinus +Maritialis +Maritimus +Marius +Maro +Marsallas +Marsicus +Marsus +Marsyas +Martial +Martialis +Martianus +Martinus +Martius +Martyrius +Marullinus +Marullus +Maternus +Matho +Mauricius +Maursus +Maximian +Maximianus +Maximinius +Maximinus +Maximus +Medullinus +Megellus +Melissus +Melitus +Mellitus +Melus +Meminius +Memmius +Memor +Mercator +Mercurialis +Mercurinus +Merula +Messala +Messor +Metellus +Metilius +Metunus +Micianus +Mico +Micon +Milonius +Minervalis +Minianus +Minicianus +Moderatus +Molacus +Momus +Montanus +Montaus +Mordanticus +Mucianus +Muco +Muncius +Murena +Mus +Musa +Musicus +Mutilus +Mutius +Nabor +Naevius +Narcissus +Narses +Nasica +Naso +Natalinus +Natalis +Naucratius +Nazarius +Nectaridus +Nelius +Nemesianus +Nemnogenus +Neneus +Nennius +Nepos +Nero +Nertomarus +Nerva +Nicasius +Nicetius +Nigellus +Niger +Nigidius +Nigrinus +Niraemius +Nobilior +Nolus +Nonius +Noster +Novation +Novellius +Numerianus +Numonis +Oceanus +Octavian +Octavianus +Octobrianus +Olennius +Olympicus +Opilio +Opimius +Opis +Optatus +Ordius +Orientalis +Orientius +Orissus +Orosius +Osterianus +Otho +Ovidus +Pacatianus +Pachomius +Pacuvianus +Paenula +Paetinus +Paetus +Palicamus +Pamphilius +Panaetius +Pansa +Pantensus +Pantera +Panthera +Papinian +Papus +Paratus +Parnesius +Pascentius +Pastor +Paterculus +Paternus +Patiens +Patricius +Paulinus +Paullus +Pavo +Pelagius +Pennus +Peregrinus +Perennis +Perpenna +Perperna +Pertacus +Pertinax +Petasius +Petreius +Petronax +Petrus +Philippus +Photius +Pictor +Pilatus +Pilus +Piso +Pius +Placidus +Planta +Plautis +Plautius +Plautus +Pleminius +Pollienus +Pollio +Polus +Polybius +Pompolussa +Pomponius +Poplicola +Porcus +Porphyrius +Postumianus +Postumus +Potitus +Praetextus +Prilidianus +Primanus +Primulus +Primus +Prisca +Priscian +Priscillian +Priscillianus +Priscus +Probus +Processus +Proceus +Proculus +Procyon +Profuterius +Propertius +Protacius +Protus +Proxsimus +Publianus +Publicola +Publicus +Pudens +Pudentius +Pulcher +Pulcherius +Pullus +Pusinnus +Pustula +Quartinus +Quarto +Quatruus +Quentin +Quietus +Quintilianus +Quintilius +Quintillius +Quintillus +Quiriac +Quiricus +Quirinalis +Ramio +Ramirus +Ravilla +Reburrus +Receptus +Rectus +Regillus +Reginus +Regulus +Remigius +Remus +Renatus +Respectus +Restitutus +Rex +Rhesus +Ripanus +Rogatus +Rogelius +Romanus +Romulianus +Romulus +Roscius +Rufinianus +Rufinus +Rufrius +Rufus +Rullus +Ruricius +Ruso +Rusticus +Rutilianus +Sabellius +Sabinianus +Sabinus +Sacerdos +Saenus +Salinator +Salonianus +Saloninus +Salonius +Salvian +Salvianus +Sanctus +Sandilianus +Sanga +Sarimarcus +Sarrius +Saturninus +Saunio +Scaevola +Scapula +Scaro +Scato +Scaurus +Schlerus +Scipio +Scribonianus +Scrofa +Sebastianus +Secundas +Segestes +Sejanus +Sellic +Seneca +Senecianus +Senecio +Senilis +Senna +Senopianus +Sentius +Septimianus +Septimus +Seronatus +Serranus +Servanus +Servatius +Seuso +Severlinus +Severus +Sevso +Siculus +Sidonius +Sigilis +Silanus +Silius +Silo +Silus +Silvanus +Similis +Simo +Simplex +Simplicianus +Siricus +Sisenna +Sisinnius +Sita +Sollemnis +Sospes +Sorex +Sorio +Sosius +Sotericus +Soulinus +Spartacus +Spendius +Speratus +Spurinna +Statius +Stichus +Strabo +Sudrenus +Suilius +Sulinus +Sulla +Super +Superbus +Superstes +Sura +Surinus +Surius +Surus +Sylla +Sylvian +Sylvius +Symmachus +Symphorian +Sympronian +Synistor +Synnodus +Tacitus +Taenaris +Tancinus +Tanicus +Tarsicius +Tatianus +Taurinus +Telesinus +Terenteianus +Tertullian +Tertulus +Tetricus +Tetullianus +Thrasea +Thurinus +Tiberillus +Tiberinus +Tibullus +Tiburs +Titianus +Titillus +Torquatus +Traianus +Trailus +Tranio +Tranquillus +Trebonianus +Tremerus +Tremorinus +Trenico +Trenus +Triarius +Trifer +Triferus +Trimalchio +Trogus +Trupo +Tuccianus +Tuditanus +Turibius +Turpilianus +Turpilinus +Tuticanus +Tutor +Ulpianus +Urbicus +Ursinus +Ursus +Uticensis +Vala +Valens +Valentinian +Valentinus +Valerianus +Valgus +Varialus +Varro +Varus +Vatia +Vedrix +Venantius +Venator +Ventor +Venustinius +Verecundus +Verinus +Verres +Verrucosus +Verullus +Verus +Vespasianus +Vespillo +Vestinus +Vetranio +Vettonianus +Vetus +Viator +Vibennis +Vibius +Victor +Victoricus +Victorinus +Victorianus +Victricius +Vincentius +Vindex +Vinicianus +Viridio +Virilis +Vitalinus +Vitalis +Vitulus +Vitus +Vocula +Volusianus +Vopiscus +Vulso \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/roman_nomina.txt b/src/main/resources/assets/customnpcs/markovnames/roman_nomina.txt new file mode 100644 index 000000000..3ad617a07 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/roman_nomina.txt @@ -0,0 +1,542 @@ +Aburius +Accius +Accoleius +Acilius +Aebutius +Aedinius +Aelius +Aemilius +Albanius +Albatius +Allectius +Amatius +Annius +Antistius +Antius +Antonius +Appuleius +Aquillius +Armenius +Arrius +Arsinius +Artorius +Asinius +Ateius +Atius +Atilius +Atrius +Attius +Aufidius +Aurelius +Aurius +Ausonius +Avidius +Axius +Baebius +Balventius +Bantius +Barbatius +Barrius +Bellicius +Bellienus +Bellius +Betilienus +Betucius +Blandius +Blossius +Bruttius +Bucculeius +Burbuleius +Burrienus +Caecilius +Caecina +Caecius +Caedicius +Caelius +Caeparius +Caepasius +Caerellius +Caesennius +Caesetius +Caesius +Caesonius +Caesulenus +Caetronius +Calavius +Calidius +Calpurnius +Calventius +Calvisius +Camilius +Camillius +Camelius +Canidius +Caninius +Canius +Cantilius +Cantius +Canuleius +Canutius +Carfulenus +Carisius +Carius +Caristanius +Carpinatius +Carteius +Carvilius +Cassius +Castricius +Castrinius +Catius +Catienus +Catilius +Ceionius +Centenius +Cestius +Cicereius +Cilnius +Cincius +Cispius +Claudius +Clodius +Cloelius +Clovius +Cluilius +Cluentius +Cluvius +Cocceius +Cominius +Consentius +Considius +Coponius +Cordius +Corfidius +Cornelius +Cornificius +Coruncanius +Cosconius +Cossinius +Cossutius +Cotius +Cottius +Crassitius +Crepereius +Critonius +Cupiennius +Curiatius +Curius +Curtilia +Curtius +Cuspius +Decimius +Decius +Dellius +Desticius +Dexsius +Didius +Digitius +Dillius +Domitius +Duccius +Duilius +Durmius +Duronius +Egilius +Egnatius +Egnatuleius +Ennius +Epidius +Eppius +Equitius +Erucius +Fabius +Fabricius +Fadius +Faenius +Falcidius +Falerius +Fannius +Farsuleius +Faucius +Favonius +Festinius +Fidiculanius +Flaminius +Flavius +Flavinius +Flavonius +Floridius +Florius +Floronius +Fonteius +Foslius +Fuficius +Fufidius +Fufius +Fulcinius +Fulvius +Fundanus +Furius +Furnia +Gabinius +Galerius +Gallius +Gargonius +Gavius +Geganius +Gellius +Geminius +Genucius +Gessius +Granius +Gratius +Gratidius +Haterius +Heius +Helvidius +Helvius +Herennius +Herminius +Hirrius +Hirtius +Hirtuleius +Horatius +Hortensius +Hosidius +Hostilius +Iccius +Icilius +Insteius +Julius +Junius +Juventius +Laberius +Labienus +Lacerius +Laecanius +Laelius +Laenius +Laetilius +Laetorius +Lafrenius +Lamponius +Laronius +Lartius +Latinius +Lavinius +Lemonius +Lentidius +Liburnius +Licinius +Ligarius +Livius +Lollius +Longinius +Loreius +Lucceius +Lucienus +Lucilius +Lucius +Lucretius +Lurius +Luscius +Lusius +Lutatius +Macrinius +Maecilius +Maecius +Maelius +Maenius +Maevius +Magius +Mallius +Mamilius +Manilia +Manlius +Manilius +Marcius +Marius +Matius +Matienus +Matinius +Matrinius +Maximius +Memmius +Menenius +Menius +Mescinius +Messienus +Messius +Metilius +Mettius +Milonius +Mimesius +Minatius +Minicius +Minidius +Minucius +Modius +Mucius +Mummius +Munatius +Munius +Murrius +Mussidius +Mustius +Mutius +Naevius +Nasennius +Nasidienus +Nasidius +Nautius +Neratius +Nerius +Nigidius +Ninnius +Nipius +Nonius +Norbanus +Novellius +Novius +Numerius +Numicius +Numisius +Numitorius +Nummius +Numonius +Nymphidius +Obellius +Obultronius +Occius +Oclatinius +Oclatius +Octavenus +Octavius +Ofanius +Ofilius +Ogulnius +Ollius +Opellius +Opetreia +Opimius +Opiternia +Oppidius +Oppius +Opsidius +Opsilius +Opsius +Oranius +Orbicius +Orbilius +Orchius +Orcivius +Orfidius +Orfius +Oscius +Ostorius +Otacilius +Ovidius +Ovinius +Paccius +Pacidius +Pacilius +Paconius +Pactumeius +Pacuvius +Palfurius +Palpellius +Pantuleius +Papinius +Papirius +Papius +Pasidienus +Pasidius +Passienus +Patulcius +Pedanius +Pedius +Peducaeus +Peltrasius +Percennius +Perperna +Persius +Pescennius +Petellius +Petillius +Petreius +Petronius +Petrosidius +Pilius +Pinarius +Pinnius +Pisentius +Placidius +Plaetorius +Plaguleius +Plautius +Pleminius +Plinius +Plotius +Pollius +Pompeius +Pompilius +Pomponius +Pomptinus +Pontidius +Pontificius +Pontilienus +Pontilius +Pontius +Popidius +Poppaeus +Porcius +Portius +Postumius +Postumulenus +Potitius +Praecilius +Praeconius +Precius +Priscius +Propertius +Publicius +Publilius +Pupius +Quartinius +Quartius +Quinctilius +Quinctius +Quirinius +Rabirius +Rabonius +Rabuleius +Racilius +Raecius +Ragonius +Rammius +Ranius +Rasinius +Reginius +Remmius +Rennius +Resius +Romanius +Romilius +Roscius +Rubellius +Rubrenus +Rubrius +Rufinius +Rufius +Rufrius +Rullius +Rupilia +Rusonius +Rusticelius +Rustius +Rutilius +Sabellius +Sabidius +Sabinius +Sabucius +Saenius +Safinius +Salienus +Sallustius +Salonius +Saltius +Salvidienus +Salvidius +Salvius +Sammius +Sanquinius +Sariolenus +Sarius +Satellius +Satrienus +Satrius +Sattius +Saturius +Saufeius +Scaevilius +Scaevinius +Scaevius +Scandilius +Scantinius +Scantius +Scribonius +Secundinius +Secundius +Seius +Sempronius +Sennius +Sentius +Septimius +Sepunius +Sergius +Sertorius +Servilius +Sestius +Sextilius +Sextius +Sidonius +Silius +Sittius +Socellius +Sornatius +Spurius +Statius +Statilius +Stertinius +Suedius +Sulpicius +Tadius +Tanicius +Tertinius +Tettidius +Tettienus +Tettius +Titiedius +Titius +Titinius +Trebatius +Trebellius +Treblanus +Tremellius +Tuccius +Tullius +Turullius +Ulpius +Umbrius +Ummidius +Urgulanius +Valerius +Varius +Vatinius +Vedius +Velius +Veranius +Verecundius +Vergilius +Verginius +Vesnius +Veturius +Vibenius +Vibidius +Vibius +Victricius +Viducius +Vinicius +Vipsanius +Vipstanus +Viridius +Virius +Visellius +Vitellius +Vitruvius +Volcatius +Volumnius +Volusenna +Volusenus +Volusius +Vulius \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/roman_praenomina.txt b/src/main/resources/assets/customnpcs/markovnames/roman_praenomina.txt new file mode 100644 index 000000000..ffae59a1f --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/roman_praenomina.txt @@ -0,0 +1,52 @@ +Appius +Aulus +Caelus +Decius +Decimus +Faustus +Flavius +Gaius +Gnaeus +Kaeso +Lucius +Mamercus +Manius +Marcus +Mettius +Numerius +Octavianus +Publius +Quintus +Secundus +Septimus +Servius +Sextus +Spurius +Tertius +Tiberius +Titus +Agrippa +Amulius +Arrunus +Camillus +Canus +Cossus +Drusus +Gallus +Herius +Hostus +Larus +Marcellus +Nero +Nonus +Oppius +Paulus +Postumius +Potitus +Primus +Proculus +Silvanus +Sisenna +Tullus +Vibius +Vopiscus \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/saami_bothgenders.txt b/src/main/resources/assets/customnpcs/markovnames/saami_bothgenders.txt new file mode 100644 index 000000000..c9e48b893 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/saami_bothgenders.txt @@ -0,0 +1,722 @@ +Ábel +Ábo +Ábrrán +Ádo +Ádolfe +Ágá +Ággi +Ahkebeaivi +Ahkejuoksa +Ahkemiella +Áibmu +Áigesárri +Áigin +Áillon +Áillun +Ailo +Áilu +Áivvit +Áksel +Álbe +Albearta +Ále +Áles +Álfa +Algebeaivi +Állan +Ámmá +Ámmol +Ámmon +Ámmot +Ándá +Ándaras +Ándde +Ánddijá +Ánde +Ánderijá +Ánnjá +Áno +Ánot +Ansealbma +Anselbme +Ánte +Ánton +Ántte +Ápmot +Áppo +Áppá +Ápparan +Ára +Arijoutsi +Áron +Árrajuoksa +Ártne +Ártor +Árvet +Ásko +Aslak +Áslat +Ásllak +Ásllat +Áttán +Ávgos +Ávvu +Bánccu +Báncu +Bánnos +Bávllos +Bávlos +Bávva +Bávval +Bávvál +Bážá +Dáidu +Beahkká +Beaivi +Beaivvet +Beanta +Beartu +Beđar +Bede +Begá +Behkká +Behtter +Benjáme +Benne +Biđe +Biede +Biehtár +Biejan +Biejaš +Bienná +Biera +Bieraš +Bierdna +Bierra +Bierrán +Bierrelaš +Bierril +Bierža +Bieržá +Biette +Bihto +Bijáš +Bilzi +Birger +Birki +Cáijá +Čoavvá +Čuivi +Curtnaš +Dánel +Dárbmu +Dávgon +Dávved +Dávvet +Deahppán +Dearsu +Defá +Diijá +Doaivu +Doaivvot +Doffá +Dommá +Dorste +Duomis +Duommá +Duoŋgi +Dure +Duttá +Duvká +Duvre +Eaddji +Ealjá +Edo +Egel +Eidnár +Eidno +Einár +Eirá +Eiven +Elejas +Eles +Elias +Eljes +Emel +Eret +Erke +Ertno +Esájas +Feles +Filpa +Fretterat +Fretteret +Gábe +Gáhppá +Gáiju +Gáivvaš +Gáktu +Gállá +Gállagas +Gáppe +Gárral +Gávgu +Gealbu +Gearral +Geažotmiella +Guhtur +Guivi +Gunnár +Gusto +Gustu +Hánas +Hánno +Hánsa +Háral +Hárri +Heaibmu +Heaika +Heammu +Heandarak +Heandarat +Hegon +Heige +Heigen +Heijá +Heiká +Hendá +Henddo +Heneš +Hennet +Hentto +Herko +Holger +Hugo +Iđga +Iiggá +Iisku +Iissát +Ilbmar +Imbá +Indu +Irján +Iskko +Isku +Issák +Issát +Ivvár +Jágát +Jágo +Jáhken +Jáhko +Jáhkot +Jálbmár +Járre +Járri +Jeansa +Joavnna +Joel +Johá +Johán +Johanas +Johánas +Jompá +Joná +Jonás +Joŋgu +Jonne +Jonsá +Joret +Jorge +Jorgen +Josáp +Josát +Jovnna +Jovnnás +Jovssek +Jovssep +Jovsset +Jovssut +Jovvá +Juffe +Juhán +Juho +Juhu +Juhván +Juhvo +Julejus +Jullá +Juŋgi +Juŋkil +Junne +Junte +Juoksa +Jusát +Jussá +Jusse +Jussenaš +Juvvá +Juvven +Kállá +Kálle +Kárral +Klemmá +Lágon +Lájár +Lárá +Láras +Lársa +Larsa +Lásse +Lávo +Lávra +Lávrrahaš +Lávrras +Lávrrohaš +Leaifa +Leammá +Leammu +Ledjo +Lejo +Lemek +Lemet +Lemmá +Lenne +Máde +Máđen +Mádes +Mahtte +Máhtte +Máhtto +Máidnu +Márkkos +Márte +Márten +Matti +Mávdnos +Mávnos +Mávra +Mávrres +Mellet +Mielat +Migál +Migáš +Migil +Migos +Migoš +Migot +Mihka +Mihkil +Mihkkal +Mihkkel +Mihkkil +Mihkku +Mikkal +Mikko +Mikkol +Mikku +Milot +Mohkku +Mokci +Morte +Morten +Mortu +Mures +Náhkol +Náinnas +Nanit +Nibá +Nigá +Nigo +Nihkke +Nihkko +Nihkolávo +Nihkul +Niikka +Niikke +Niikko +Niila +Niilá +Niilas +Niillá +Niillán +Niillas +Nilá +Nila +Nilán +Nilas +Nilke +Nillá +Nilla +Nilpa +Nilsa +Nilse +Ninna +Njulgu +Nuhtte +Nunná +Nuvtte +Oanet +Oaván +Oge +Oijá +Olá +Olen +Olet +Olle +Ommot +Orddot +Oskár +Osku +Otto +Oula +Ovla +Ovlá +Ovlin +Ovlla +Ovllá +Peivas +Piera +Poalla +Ráffo +Ráidner +Rálfa +Ránso +Rásmmos +Rásmos +Rássa +Rástoš +Rásttoš +Rávdnár +Rávle +Reaidnu +Rede +Riggu +Riibma +Riigu +Rijá +Rikkar +Robe +Robearta +Rolfa +Ruben +Ruigi +Saba +Sabba +Sabbe +Sáhkár +Sálá +Sálbmo +Sálmmo +Sálmo +Sámmol +Sáppá +Sárra +Sárrajuoksa +Sávlos +Selen +Sierge +Siiggur +Siivár +Silvu +Simit +Simmá +Simmon +Sivdda +Skarild +Speaidna +Sveidna +Tobejas +Uđđi +Uđjjus +Uhkku +Ulmmá +Urbán +Uvllá +Válde +Valljáš +Vállju +Válter +Veaidnu +Veaiku +Vide +Viggu +Viktor +Vilhealbma +Ville +Volbmar +Vulle +Vuoitu +Vuolát +Vuollá +Ádá +Agát +Áidná +Áidnu +Áila +Aile +Áile +Áillun +Áilon +Áilu +Áirá +Aire +Áire +Álbma +Álehtta +Álehttá +Álet +Álgen +Aliinná +Aliissá +Állet +Álvá +Amándá +Ánet +Ánná +Ánne +Ássa +Ássá +Ásta +Ástá +Ávdnos +Ávrá +Eirá +Edel +Eijá +Eivor +Elbmá +Elen +Eliissá +Ellá +Elle +Ello +Elsá +Elssá +Elve +Emmá +Emmoš +Ervá +Ester +Evá +Bávlá +Bente +Biellá +Biergá +Bigga +Biggá +Bigge +Biijá +Bikká +Biret +Birgget +Birrá +Birtá +Buohttá +Čuvje +Dárjá +Dávdna +Delle +Diinna +Diinná +Duiri +Dulá +Duojá +Duová +Florá +Gáddjá +Gáhte +Gáhteriinná +Gáre +Gáren +Gealá +Geardá +Gearte +Giđeš +Gierá +Girste +Giste +Gollá +Gunná +Gunvor +Gutnel +Hánna +Hánná +Heide +Heidi +Helbme +Heleainná +Helená +Helgá +Njáveš +Helve +Henná +Hilbmá +Hildá +Hilká +Hillá +Ibbá +Iidá +Iiddá +Iinná +Ikká +Iŋgá +Iŋger +Iŋgir +Iŋŋer +Irbmá +Isá +Janihtá +Janiinná +Jaská +Johánná +Juđet +Juhánná +Juljá +Juoksáhkká +Káhtariinná +Káre +Káren +Kariinná +Karoliinná +Kearte +Kirste +Kristiinná +Láidná +Láilá +Lávrá +Leainná +Leandu +Leinná +Lejá +Lená +Lieđđi +Liisá +Liissá +Liljá +Lindá +Linne +Livli +Lohcca +Lohttá +Lottá +Luviissá +Máddjá +Máddji +Mággá +Magredá +Mágredá +Máidna +Máijá +Máijjá +Máilá +Máire +Mákke +Máre +Máren +Máret +Márge +Márgget +Márgrehtá +Márgreittá +Márgu +Mariánná +Mariánne +Marihttá +Márjá +Márjjá +Mártá +Matildá +Mávdná +Mávnnel +Meartá +Meret +Merjá +Miijá +Miinná +Miljá +Mimmi +Minná +Mirjá +Náddjá +Naná +Nánná +Nánni +Násti +Nienná +Niná +Norá +Oajá +Oggi +Oile +Olgá +Piija +Piijá +Ráfi +Ráhkel +Ráijá +Rana +Rávdná +Ravna +Redá +Regiinná +Rihttá +Riidá +Riittá +Risten +Ristiinná +Ristin +Ruhte +Ruvsá +Sáben +Sábin +Sáddja +Sáibmi +Sánná +Sárá +Sáráhkká +Šealggá +Seará +Šeará +Seita +Selbmá +Selggo +Seljo +Siinná +Sikká +Silvá +Sire +Siru +Sive +Sivnne +Soabá +Sofe +Soffá +Sojá +Soljá +Solla +Sonjá +Sunná +Suoinná +Suonjar +Susánna +Susánná +Sussu +Teresá +Tiinná +Tildá +Tuá +Uksáhkká +Ullá +Unni +Vábo +Válbor +Várbu +Várvá +Venlá +Verá +Viivvá +Vilbmá +Virba +Virvá +Vuohkku \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/slavic_given.txt b/src/main/resources/assets/customnpcs/markovnames/slavic_given.txt new file mode 100644 index 000000000..d58d47507 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/slavic_given.txt @@ -0,0 +1,914 @@ +Bądzisław +Bąsław +Bdzigost +Będzieciech +Będzimir +Będziemir +Będziemirz +Będomir +Będzimysł +Biecław +Biecław +Biezdar +Biezdziad +Biezpraw +Brzezpraw +Biezprzem +Biezprzym +Bezprym +Biezstryj +Biestryj +Biezstryk +Brzezstryk +Brzestryk +Biezój +Biezwój +Biezrząd +Blizbor +Blizborz +Bodzepor +Bogdał +Bogdaj +Bogodał +Bogdasz +Bogudan +Bogodan +Bogdan +Bodan +Bogodar +Bogudar +Boguchwał +Boguchał +Bogufał +Bogofał +Bogfał +Bogchwał +Bochwał +Bofał +Bogumił +Bogomił +Bogmił +Bogomieł +Bogumieł +Bogmieł +Bogumysław +Bogurad +Bogured +Bogusąd +Bogusław +Bogosław +Bohusław +Bogsław +Bogwiedz +Bogwidza +Bogowid +Bolebor +Boleczaj +Boleczest +Bolelut +Bolemir +Bolemysł +Bolesław +Bosław +Borzój +Borzywój +Borzygniew +Borzgniew +Borzymir +Borzysław +Borzywoj +Borzój +Bożebor +Bożeciech +Bożciech +Bożydar +Bożdar +Bożysław +Bracław +Bratomir +Bratumił +Bratomił +Bratmił +Bretomił +Bretmił +Braturad +Brodzisław +Brocław +Barcław +Barcław +Bronimir +Bromir +Bronisąd +Bronisław +Bronsław +Barnisław +Brunisław +Brosław +Brzezdob +Brzezdoma +Budziboj +Bojan +Budzigniew +Budzimir +Budzisław +Budziwoj +Budźwoj +Budziwój +Bygost +Bytomir +Chociebąd +Chociebor +Chociemir +Chocimier +Chocimir +Chocimirz +Chocimierz +Chociesław +Chocław +Choroman +Chwalibog +Chwalimir +Chalimir +Chwalisław +Chalisław +Ciechomir +Ciechosław +Ciecierad +Ciecirad +Cieciered +Cieciurad +Ciećrad +Ciecimiar +Cierpisław +Ciesław +Cieszybor +Cieszbor +Cieszygor +Cieszymir +Cieszymiar +Cieszymier +Cieszmir +Cieszmiar +Cieszmier +Cieszymierz +Cieszymysł +Cieszyrad +Cieszysław +Cirzpibog +Czcirad +Czcisław +Cisław +Czedrog +Czesław +Czasław +Czębor +Częstobor +Częsbor +Częstogoj +Częstomir +Częstowoj +Czścibor +Czcibor +Cibor +Czesbor +Dadzbog +Dalebor +Dalibor +Dalbor +Daleborz +Dalegor +Dalemir +Dalimir +Dalemiar +Dalimiar +Dalestryj +Dalewin +Dalwin +Dargorad +Długomił +Dobiegniew +Dobielut +Dobiemiest +Dobiemir +Dobiemiar +Dobiemier +Dobimir +Dobiesław +Dobosław +Dobrobąd +Dobrociech +Dobrogost +Dobromił +Dobromir +Dobromysł +Dobromysław +Dobrosiodł +Dobrosław +Dobrowit +Dobrowoj +Dobrutro +Dobrzegniew +Domaborz +Domabor +Domagniew +Domamir +Domiemir +Domarad +Domorad +Domared +Domaradz +Domasław +Domosław +Domastoj +Domastryj +Domasuł +Domawój +Domażyr +Drogodziej +Drogomił +Dromił +Drogomir +Drogmir +Dragomir +Dargomier +Drogomysł +Drogoradz +Drogosław +Drogowit +Drogobysz +Dragobysz +Dziebor +Dzierżykraj +Dzierżysław +Dziersław +Dziesław +Dzisław +Dzirżyterg +Dzirżywój +Dziwigor +Dziwisław +Falibog +Falibor +Falimir +Falimirz +Falmierz +Falimierz +Falisław +Gniewomir +Gniewomiar +Gniewomier +Gniemir +Gniewosz +Godzimir +Godzisław +Godosław +Gocław +Gorzysław +Gorsław +Gosław +Gostmił +Gościmir +Gościrad +Gościsław +Gościwid +Gościwit +Gościwój +Grodzisław +Gromisław +Grzymisław +Grzymosław +Grzymsław +Grzmisław +Grzysław +Himisław +Hodysław +Hubysław +Huniemir +Huniesław +Imisław +Izasław +Izbor +Izbygniew +Izbylut +Izbelut +Jaczemir +Jaczewoj +Janisław +Jarogniew +Jerogniew +Jaromir +Jaromiar +Jeromiar +Jeromier +Jaropełk +Jarosław +Jerosław +Jirosław +Jarostryj +Jimisław +Juniesław +Jutrogost +Jutrowoj +Jutrowój +Kanimir +Kanimier +Kajmir +Kalmir +Kanmił +Kazimierz +Kazimir +Kazimirz +Kazimiar +Kazimier +Kaźmir +Kociebor +Kociemir +Kociemiar +Kociemier +Kocimiar +Kocimier +Kocimir +Koćmir +Krzesąd +Krzesimir +Krzesisław +Krzecław +Krzesław +Krzysław +Krzywosąd +Kwalimir +Kwalisław +Lech +Lechosław +Lederg +Lelistryj +Lesław +Lubgost +Lubodrog +Lubomir +Lubomirz +Lubomysł +Luboradz +Lubowid +Ludomił +Ludmił +Ludomir +Ludomer +Ludmar +Ludosław +Ludziwoj +Lutobor +Litobor +Lutogniew +Lutomir +Lutomiar +Lutmiar +Lutomysł +Lutosław +Lucław +Małobąd +Małogost +Małomir +Małostryj +Małostryk +Małowid +Małowój +Manomir +Markusław +Masław +Mezamir +Męcimir +Męcisław +Męcław +Męsław +Miecisław +Miecław +Miesław +Mieczysław +Miestwin +Mieszko +Milan +Miłobąd +Miłobor +Miłobrat +Miłochat +Miłoczat +Miłodrog +Miłodziad +Miłogost +Miłgost +Miłorad +Miłosław +Miełosław +Miłostryj +Miłosz +Miłowit +Miłwit +Miłowój +Minigniew +Minogniew +Mirogod +Mirogniew +Mironieg +Mirosław +Misław +Modlibog +Modliboż +Mojmi +Mojsław +Morzysław +Mroczysław +Mroczesław +Mroczsław +Mrocław +Mrocław +Mrosław +Mszczój +Mścibor +Mścigniew +Mścisław +Mściwoj +Mszczójwoj +Mściwój +Mysław +Myślibor +Myślidar +Myślimir +Naczęmir +Naczęmiar +Naczęmier +Naczęrad +Naczęsław +Nacław +Nacław +Naczęwoj +Naczęwój +Nadar +Nadbor +Nadmir +Nagod +Namir +Namysław +Nasiębąd +Nasiębud +Nasiębor +Nasięgniew +Nasław +Nawoj +Nawój +Nażyr +Niebor +Niecisław +Niebylec +Niedabył +Niedabysz +Niedalic +Niedał +Niedan +Niedaniec +Niedoma +Niedamir +Niedomysł +Niegodoma +Niegosław +Niegowoj +Niegrod +Nielubiec +Niemir +Niemierz +Niemironieg +Niemoj +Niemst +Niemsta +Niemszczon +Nienach +Niepełk +Nieprosz +Nieprasz +Nieproch +Nieprzebąd +Nieprzebud +Nieprzebysz +Nierad +Niered +Nierod +Niesąd +Niesiebąd +Niesiebud +Niesiebor +Niesiodł +Niestek +Niestoj +Niesuł +Nietęg +Nietubył +Niewsza +Niezamysł +Nieznamir +Nieznawój +Ninogniew +Ninomysł +Nowosiodł +Objęsław +Ocięsław +Odolan +Okrzesław +Osiębor +Osięgniew +Ostrobod +Ostrogniew +Ostrowod +Pakosław +Pełczybog +Pęcisław +Pęcław +Pęcław +Pęsław +Pękosław +Pomir +Pomścibor +Poznan +Poznomir +Prosimir +Przebąd +Przebor +Przedabog +Przedbor +Przedwor +Przedmir +Przezmir +Przedpełk +Przedpołk +Przedsław +Przecław +Przecław +Przesław +Przedwoj +Przedwój +Przemęt +Przemił +Przemir +Przemysł +Przemysław +Przemyślibor +Przezdoma +Przezdziad +Przezpraw +Przezprzem +Przyboj +Przybor +Przybygniew +Przybylut +Przybymir +Przybyrad +Przybysław +Przybywoja +Przybywój +Przysnobor +Przywit +Racibor +Raciborz +Recibor +Racigniew +Racimir +Racimiar +Racisław +Racław +Recław +Resław +Rasław +Radociech +Radogost +Radomił +Radomir +Radomiar +Radmir +Radosław +Redosław +Radsław +Redsław +Radosz +Radost +Radowit +Radowój +Radsuł +Radzim +Rodomił +Rodomieł +Rodsław +Rocław +Rocław +Rosława +Rościgniew +Rościsław +Rzędzimir +Rzędzisław +Rzędziwoj +Sambor +Szenbor +Samogost +Samosąd +Sęczygniew +Sędowin +Sędzimir +Sędomir +Sędzisław +Sędosław +Sędziwoj +Sędowoj +Sędźwoj +Sudywoj +Sędziwój +Siebąd +Siebor +Siabor +Szabor +Szebor +Sieciebor +Sietbor +Sieciech +Sieciesław +Siecław +Siecław +Siesław +Siedlewit +Siemidrog +Siemierz +Siemił +Siemimił +Siemmił +Siemimysł +Siemomysł +Siemomysław +Siemir +Siemar +Siemirad +Siemisław +Siemosław +Siemoradz +Siemowit +Siepraw +Siestrzemił +Siestrzewit +Sięgniew +Siężyr +Sężyr +Sirosław +Sierosław +Skarbimir +Skarbimirz +Skardmir +Skamir +Skarbisław +Skaziczest +Sławobor +Sławociech +Sławciech +Sławomir +Sławomiar +Sławosław +Smysław +Snowid +Sobiebor +Sobiemir +Sobiemysł +Sobierad +Sobiesąd +Sobiesław +Sobieżyr +Spycigniew +Spycimir +Spyćmier +Spyćmir +Spyćmierz +Spycisław +Stanibor +Stanimir +Stanisław +Stasław +Stojgniew +Stoigniew +Stogniew +Stojsław +Stoisław +Stosław +Tosław +Stomir +Strachomir +Strogobor +Strogomir +Stronisław +Strosław +Strzebor +Strzedziwoj +Strzeżymir +Strzeżysław +Strzedzisław +Strzecław +Strzecław +Strzesław +Sulibor +Sulibrat +Sulidziad +Suligost +Sulimir +Sulimiar +Sulmir +Sulirad +Sulisław +Solisław +Sulistryj +Suliwój +Swojsław +Swosław +Ścibor +Świebąd +Świebor +Świeborz +Świeciech +Świecław +Świesław +Świedarg +Świelub +Świegniew +Świemił +Świemir +Świerad +Świrad +Świętobor +Świętomir +Świętopełk +Świętosław +Święcesław +Święcław +Święsław +Tasław +Tatomir +Tatomier +Tatumir +Tęgomir +Toligniew +Tolisław +Tomił +Tomir +Tomisław +Tosław +Trzebiebor +Trzebiegost +Trzebiemir +Trzebiemiar +Trzebiemier +Trzebiemysł +Trzebomysł +Trzebiesław +Trzebisław +Trzebor +Trzebowit +Twardomir +Twardosław +Twardostoj +Tworzymir +Tworzysław +Ubysław +Unieboż +Uniebog +Uniedrog +Uniegost +Uniemir +Unimir +Uniemysł +Unierad +Unirad +Uniesław +Unisław +Uniewit +Uściwoj +wacław +warcisław +warsław +wędziemir +wielebor +wielebyt +wieledrog +wielimir +wielisław +wielesław +wielsław +wiercisław +wiesław +więcemił +więcemir +więcemiar +więcemier +więcmier +więcerad +więcesław +więcław +więcław +więsław +wilkomir +wirciżyr +wirzchosław +wisław +witomir +witomysł +witosław +wicław +witosz +władysław +włodzimierz +włodzimir +włodzisław +włocław +włocław +włościbor +właścibor +włościbyt +włościwoj +wojbor +wojciech +wociech +wojemił +wojmir +wojsław +wojesław +wojisław +wosław +wolebor +wolimir +wolemir +wolmir +wolisław +wolrad +wrocisław +wrocław +wrosław +wrociwoj +wszebąd +wszebor +wszabor +wświebor +wszeborz +wszeciech +wszegniew +wszemił +wszemir +wszemiar +wszemysł +wszerad +wszesiodł +wszesuł +wszetopełk +wysław +wyszebor +wyszabor +wyszemir +wyszesław +wyszetrop +wyszomir +wyszymir +Zadar +Zamir +Zawisza +Zbigniew +Zbygniew +Zbrosław +Zbylut +Zbelut +Zbysław +Zbywoj +Zdamir +Zdawój +Zdzibor +Zdziebor +Zdziczest +Zdziebąd +Zdziebud +Zdziegod +Zdziegrod +Zdziemił +Zdzierad +Zdziesuł +Zdziewit +Zdziewój +Zdziwój +Zdzimir +Zdziemir +Zdzisław +Zdziesław +Zdzistryj +Zdziwoj +Ziemomysł +Ziemowit +Znamir +Zwnisław +Żegota +Żelibor +Żelibrat +Żeligniew +Żelimysł +Żelisław +Żelistryj +Żeliwój +Żyrosław +Żerosław \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/slavic_given_alt.txt b/src/main/resources/assets/customnpcs/markovnames/slavic_given_alt.txt new file mode 100644 index 000000000..bd7b93bbd --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/slavic_given_alt.txt @@ -0,0 +1,914 @@ +bądzisław +bąsław +bdzigost +będzieciech +będzimir +będziemir +będziemirz +będomir +będzimysł +biecław +biecław +biezdar +biezdziad +biezpraw +brzezpraw +biezprzem +biezprzym +bezprym +biezstryj +biestryj +biezstryk +brzezstryk +brzestryk +biezój +biezwój +biezrząd +blizbor +blizborz +bodzepor +bogdał +bogdaj +bogodał +bogdasz +bogudan +bogodan +bogdan +bodan +bogodar +bogudar +boguchwał +boguchał +bogufał +bogofał +bogfał +bogchwał +bochwał +bofał +bogumił +bogomił +bogmił +bogomieł +bogumieł +bogmieł +bogumysław +bogurad +bogured +bogusąd +bogusław +bogosław +bohusław +bogsław +bogwiedz +bogwidza +bogowid +bolebor +boleczaj +boleczest +bolelut +bolemir +bolemysł +bolesław +bosław +borzój +borzywój +borzygniew +borzgniew +borzymir +borzysław +borzywoj +borzój +bożebor +bożeciech +bożciech +bożydar +bożdar +bożysław +bracław +bratomir +bratumił +bratomił +bratmił +bretomił +bretmił +braturad +brodzisław +brocław +barcław +barcław +bronimir +bromir +bronisąd +bronisław +bronsław +barnisław +brunisław +brosław +brzezdob +brzezdoma +budziboj +bojan +budzigniew +budzimir +budzisław +budziwoj +budźwoj +budziwój +bygost +bytomir +chociebąd +chociebor +chociemir +chocimier +chocimir +chocimirz +chocimierz +chociesław +chocław +choroman +chwalibog +chwalimir +chalimir +chwalisław +chalisław +ciechomir +ciechosław +ciecierad +ciecirad +cieciered +cieciurad +ciećrad +ciecimiar +cierpisław +ciesław +cieszybor +cieszbor +cieszygor +cieszymir +cieszymiar +cieszymier +cieszmir +cieszmiar +cieszmier +cieszymierz +cieszymysł +cieszyrad +cieszysław +cirzpibog +czcirad +czcisław +cisław +czedrog +czesław +czasław +czębor +częstobor +częsbor +częstogoj +częstomir +częstowoj +czścibor +czcibor +cibor +czesbor +dadzbog +dalebor +dalibor +dalbor +daleborz +dalegor +dalemir +dalimir +dalemiar +dalimiar +dalestryj +dalewin +dalwin +dargorad +długomił +dobiegniew +dobielut +dobiemiest +dobiemir +dobiemiar +dobiemier +dobimir +dobiesław +dobosław +dobrobąd +dobrociech +dobrogost +dobromił +dobromir +dobromysł +dobromysław +dobrosiodł +dobrosław +dobrowit +dobrowoj +dobrutro +dobrzegniew +domaborz +domabor +domagniew +domamir +domiemir +domarad +domorad +domared +domaradz +domasław +domosław +domastoj +domastryj +domasuł +domawój +domażyr +drogodziej +drogomił +dromił +drogomir +drogmir +dragomir +dargomier +drogomysł +drogoradz +drogosław +drogowit +drogobysz +dragobysz +dziebor +dzierżykraj +dzierżysław +dziersław +dziesław +dzisław +dzirżyterg +dzirżywój +dziwigor +dziwisław +falibog +falibor +falimir +falimirz +falmierz +falimierz +falisław +gniewomir +gniewomiar +gniewomier +gniemir +gniewosz +godzimir +godzisław +godosław +gocław +gorzysław +gorsław +gosław +gostmił +gościmir +gościrad +gościsław +gościwid +gościwit +gościwój +grodzisław +gromisław +grzymisław +grzymosław +grzymsław +grzmisław +grzysław +himisław +hodysław +hubysław +huniemir +huniesław +imisław +izasław +izbor +izbygniew +izbylut +izbelut +jaczemir +jaczewoj +janisław +jarogniew +jerogniew +jaromir +jaromiar +jeromiar +jeromier +jaropełk +jarosław +jerosław +jirosław +jarostryj +jimisław +juniesław +jutrogost +jutrowoj +jutrowój +kanimir +kanimier +kajmir +kalmir +kanmił +kazimierz +kazimir +kazimirz +kazimiar +kazimier +kaźmir +kociebor +kociemir +kociemiar +kociemier +kocimiar +kocimier +kocimir +koćmir +krzesąd +krzesimir +krzesisław +krzecław +krzesław +krzysław +krzywosąd +kwalimir +kwalisław +lech +lechosław +lederg +lelistryj +lesław +lubgost +lubodrog +lubomir +lubomirz +lubomysł +luboradz +lubowid +ludomił +ludmił +ludomir +ludomer +ludmar +ludosław +ludziwoj +lutobor +litobor +lutogniew +lutomir +lutomiar +lutmiar +lutomysł +lutosław +lucław +małobąd +małogost +małomir +małostryj +małostryk +małowid +małowój +manomir +markusław +masław +mezamir +męcimir +męcisław +męcław +męsław +miecisław +miecław +miesław +mieczysław +miestwin +mieszko +milan +miłobąd +miłobor +miłobrat +miłochat +miłoczat +miłodrog +miłodziad +miłogost +miłgost +miłorad +miłosław +miełosław +miłostryj +miłosz +miłowit +miłwit +miłowój +minigniew +minogniew +mirogod +mirogniew +mironieg +mirosław +misław +modlibog +modliboż +mojmi +mojsław +morzysław +mroczysław +mroczesław +mroczsław +mrocław +mrocław +mrosław +mszczój +mścibor +mścigniew +mścisław +mściwoj +mszczójwoj +mściwój +mysław +myślibor +myślidar +myślimir +naczęmir +naczęmiar +naczęmier +naczęrad +naczęsław +nacław +nacław +naczęwoj +naczęwój +nadar +nadbor +nadmir +nagod +namir +namysław +nasiębąd +nasiębud +nasiębor +nasięgniew +nasław +nawoj +nawój +nażyr +niebor +niecisław +niebylec +niedabył +niedabysz +niedalic +niedał +niedan +niedaniec +niedoma +niedamir +niedomysł +niegodoma +niegosław +niegowoj +niegrod +nielubiec +niemir +niemierz +niemironieg +niemoj +niemst +niemsta +niemszczon +nienach +niepełk +nieprosz +nieprasz +nieproch +nieprzebąd +nieprzebud +nieprzebysz +nierad +niered +nierod +niesąd +niesiebąd +niesiebud +niesiebor +niesiodł +niestek +niestoj +niesuł +nietęg +nietubył +niewsza +niezamysł +nieznamir +nieznawój +ninogniew +ninomysł +nowosiodł +objęsław +ocięsław +odolan +okrzesław +osiębor +osięgniew +ostrobod +ostrogniew +ostrowod +pakosław +pełczybog +pęcisław +pęcław +pęcław +pęsław +pękosław +pomir +pomścibor +poznan +poznomir +prosimir +przebąd +przebor +przedabog +przedbor +przedwor +przedmir +przezmir +przedpełk +przedpołk +przedsław +przecław +przecław +przesław +przedwoj +przedwój +przemęt +przemił +przemir +przemysł +przemysław +przemyślibor +przezdoma +przezdziad +przezpraw +przezprzem +przyboj +przybor +przybygniew +przybylut +przybymir +przybyrad +przybysław +przybywoja +przybywój +przysnobor +przywit +racibor +raciborz +recibor +racigniew +racimir +racimiar +racisław +racław +recław +resław +rasław +radociech +radogost +radomił +radomir +radomiar +radmir +radosław +redosław +radsław +redsław +radosz +radost +radowit +radowój +radsuł +radzim +rodomił +rodomieł +rodsław +rocław +rocław +rosława +rościgniew +rościsław +rzędzimir +rzędzisław +rzędziwoj +sambor +szenbor +samogost +samosąd +sęczygniew +sędowin +sędzimir +sędomir +sędzisław +sędosław +sędziwoj +sędowoj +sędźwoj +sudywoj +sędziwój +siebąd +siebor +siabor +szabor +szebor +sieciebor +sietbor +sieciech +sieciesław +siecław +siecław +siesław +siedlewit +siemidrog +siemierz +siemił +siemimił +siemmił +siemimysł +siemomysł +siemomysław +siemir +siemar +siemirad +siemisław +siemosław +siemoradz +siemowit +siepraw +siestrzemił +siestrzewit +sięgniew +siężyr +sężyr +sirosław +sierosław +skarbimir +skarbimirz +skardmir +skamir +skarbisław +skaziczest +sławobor +sławociech +sławciech +sławomir +sławomiar +sławosław +smysław +snowid +sobiebor +sobiemir +sobiemysł +sobierad +sobiesąd +sobiesław +sobieżyr +spycigniew +spycimir +spyćmier +spyćmir +spyćmierz +spycisław +stanibor +stanimir +stanisław +stasław +stojgniew +stoigniew +stogniew +stojsław +stoisław +stosław +tosław +stomir +strachomir +strogobor +strogomir +stronisław +strosław +strzebor +strzedziwoj +strzeżymir +strzeżysław +strzedzisław +strzecław +strzecław +strzesław +sulibor +sulibrat +sulidziad +suligost +sulimir +sulimiar +sulmir +sulirad +sulisław +solisław +sulistryj +suliwój +swojsław +swosław +ścibor +świebąd +świebor +świeborz +świeciech +świecław +świesław +świedarg +świelub +świegniew +świemił +świemir +świerad +świrad +świętobor +świętomir +świętopełk +świętosław +święcesław +święcław +święsław +tasław +tatomir +tatomier +tatumir +tęgomir +toligniew +tolisław +tomił +tomir +tomisław +tosław +trzebiebor +trzebiegost +trzebiemir +trzebiemiar +trzebiemier +trzebiemysł +trzebomysł +trzebiesław +trzebisław +trzebor +trzebowit +twardomir +twardosław +twardostoj +tworzymir +tworzysław +ubysław +unieboż +uniebog +uniedrog +uniegost +uniemir +unimir +uniemysł +unierad +unirad +uniesław +unisław +uniewit +uściwoj +wacław +warcisław +warsław +wędziemir +wielebor +wielebyt +wieledrog +wielimir +wielisław +wielesław +wielsław +wiercisław +wiesław +więcemił +więcemir +więcemiar +więcemier +więcmier +więcerad +więcesław +więcław +więcław +więsław +wilkomir +wirciżyr +wirzchosław +wisław +witomir +witomysł +witosław +wicław +witosz +władysław +włodzimierz +włodzimir +włodzisław +włocław +włocław +włościbor +właścibor +włościbyt +włościwoj +wojbor +wojciech +wociech +wojemił +wojmir +wojsław +wojesław +wojisław +wosław +wolebor +wolimir +wolemir +wolmir +wolisław +wolrad +wrocisław +wrocław +wrosław +wrociwoj +wszebąd +wszebor +wszabor +wświebor +wszeborz +wszeciech +wszegniew +wszemił +wszemir +wszemiar +wszemysł +wszerad +wszesiodł +wszesuł +wszetopełk +wysław +wyszebor +wyszabor +wyszemir +wyszesław +wyszetrop +wyszomir +wyszymir +zadar +zamir +zawisza +zbigniew +zbygniew +zbrosław +zbylut +zbelut +zbysław +zbywoj +zdamir +zdawój +zdzibor +zdziebor +zdziczest +zdziebąd +zdziebud +zdziegod +zdziegrod +zdziemił +zdzierad +zdziesuł +zdziewit +zdziewój +zdziwój +zdzimir +zdziemir +zdzisław +zdziesław +zdzistryj +zdziwoj +ziemomysł +ziemowit +znamir +zwnisław +żegota +żelibor +żelibrat +żeligniew +żelimysł +żelisław +żelistryj +żeliwój +żyrosław +żerosław \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/spanish_given_female.txt b/src/main/resources/assets/customnpcs/markovnames/spanish_given_female.txt new file mode 100644 index 000000000..74c520d36 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/spanish_given_female.txt @@ -0,0 +1,310 @@ +abella +adalina +adelaida +adelina +adelita +adelmira +adoncia +adora +adoracion +adoria +adriana +agata +agota +agueda +aina +alba +aldonza +alejandra +aleta +alicia +alisa +alita +almudena +alondra +alta +amada +amaranta +amparo +ana +ángela +angélica +ángelita +anita +antonia +antonietta +anunciación +araceli +aracelis +aracely +arcelia +ariadna +ascención +asunción +azucena +basilia +beatriz +belén +benita +berengária +bernardita +bibiana +bienvenida +blanca +bonita +brunilda +camila +cande +candelaria +candelas +caridad +carmela +carmelita +carmen +carmencita +casilda +catalina +catherina +celestina +célia +cenobia +charo +chelo +chica +chickie +chicky +chiquita +chita +chus +clarisa +concepción +concha +conchita +constanza +consuela +consuelo +corazón +crescencia +cruz +cruzita +custodia +débora +deifilia +delfina +desideria +dolores +dominga +domitila +doncia +dorita +dorotea +drina +dulce +edelmira +eduarda +elena +elicia +elmira +elodia +eloisa +elvira +emelina +emigdia +emiliana +emperatriz +emygdia +encarna +encarnación +encarnita +enriqueta +ercilia +ernesta +esmaralda +esmeralda +esmerelda +esperanza +estefanía +estela +estrella +eufémia +eugènia +eulália +evita +feliciana +felicidad +felipa +felipina +fernánda +fidelia +francisca +gabriela +genoveva +gertrudis +gilberta +gracia +graciana +graciela +guadalupe +herminia +ibbie +idoya +imelda +iñes +inéz +inmaculada +isabel +isabell +isbel +ivette +izabelle +jacinta +jessenia +jesúsa +jimena +josefina +jovita +juana +juanita +leocadia +leonor +leta +leticia +lita +loída +lola +lolita +lorita +lucía +lucinda +lucinde +luisa +luisina +lupe +lupita +lurdes +luz +macarena +macaria +magdalena +maite +manola +manolita +manuela +manuelita +marcela +marcelina +maresol +margaretta +marguerita +maría +marianela +mariangela +maribel +maricela +maricruz +marisol +marita +maritza +marta +martirio +martita +matilde +mayte +melania +mercedes +miguela +milagros +mireia +mónica +natalia +neva +nieve +nieves +nilda +nina +nita +noelia +nohemi +novia +núria +odalis +odalys +olalla +paca +paloma +paquita +pascuala +pastora +pepita +peppi +perla +perlita +perpetua +petrona +pía +piedad +pilar +pili +priscila +prudencia +rafaela +raimunda +ramira +ramona +raquel +rebeca +reina +remedios +renata +reyna +ria +ricarda +rita +roberta +robertina +rocío +rosario +rosita +salud +sancha +sanchia +sara +sarita +sence +sens +socorro +sofía +sol +soledad +suelo +susana +susanita +tatiana +tecla +teófila +tere +teresa +thera +therasia +theresa +tomasa +tonia +trini +trinidad +valencia +valentia +verónica +violeta +visitación +xènia +ximena +xiomara +yazmin +yesenia +yessenia +ynes +ynez +ysabel +zarita +zenaida + diff --git a/src/main/resources/assets/customnpcs/markovnames/spanish_given_male.txt b/src/main/resources/assets/customnpcs/markovnames/spanish_given_male.txt new file mode 100644 index 000000000..e57018070 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/spanish_given_male.txt @@ -0,0 +1,381 @@ +aarón +abelardo +abraám +abrahán +adalberto +adán +adolpho +adrián +agapeto +agapito +agustín +alano +alarico +alberto +alejandro +alejo +alfonso +alfredo +alphonso +álvaro +amadis +amado +amador +amancio +amando +amaranto +ambrosio +amidio +amilcar +anacleto +anbessa +andrés +anibal +anselmo +antonello +antonio +apolinar +armando +arnaldo +arsenio +arturo +asdrubal +atilio +augusto +aureliano +aurelio +babieca +bajardo +baldomero +balduino +bartolomé +basilio +bautista +bayardo +beltrán +benedicto +benito +berenguer +bermudo +bernardo +blas +bolívar +bolivar +buenaventura +camilo +candelario +carlito +carlitos +carlos +carmelo +casimiro +cayetano +cayo +cebrián +cecilio +celestino +celino +celio +celso +césar +che +chico +chucho +chus +chuy +ciriaco +claudio +clavileno +clemente +cleto +clímaco +conrado +cristián +cristóbal +cruz +curro +custodio +damián +demetrio +desi +desiderio +diego +dimas +dionisio +domingo +donato +doroteo +eberardo +edgardo +edmundo +eduardo +efraín +eladio +eleuterio +eliseo +eloy +elpidio +emerico +emidio +emigdio +emiliano +emilio +emygdio +enrique +epifanio +ermenegildo +ernesto +espiridión +essua +estavan +estéban +eugènio +eugenio +eulálio +eurico +eusbio +eusebio +eustaquio +eutimio +eutropio +ezequiel +fabián +fabricio +faramundo +faustino +fausto +federico +feliciano +felipe +fermín +fernán +fernándo +fidel +flavio +florencio +fons +fonsie +francisco +frascuelo +frasquito +fulgencio +gabino +gael +gaspar +geraldo +gerardo +germán +gervasi +gervasio +gil +gilberto +godofredo +goito +gonzalo +goyo +graciano +gregorio +gualtiero +guilermo +guillermo +guiomar +gustavo +hector +heliodoro +herberto +heriberto +hermenegildo +herminio +hernán +hernando +hieronimo +hilario +hipolito +horacio +humberto +iago +ignacio +ildefonso +iñigo +inigo +iñjgo +inocencio +isandro +ismael +iuceph +jacinto +jacobo +jaime +javier +jenaro +jerónimo +jesús +joaquin +jorge +josé +josue +juan +juanito +julián +julio +junípero +ladislao +lalo +leandro +leocadio +león +leonardo +leoncio +leopoldo +lino +lope +lorencio +lucio +luis +macario +manolete +manolito +manolo +manuel +marcelino +marcelo +marcial +marcio +marcos +mario +martín +mateo +mauricio +maximiano +maximiliano +maximino +máximo +melchor +merlín +miguel +modesto +moisés +nacho +nacio +narciso +natalio +natanael +nazario +nicodemo +nicolao +nicolás +novio +octavio +odalis +olegario +óscar +osvaldo +ovidio +pablo +paco +pancho +paquito +pascual +pastor +patricio +paulino +pedro +pepe +pepito +pino +pío +plácido +plinio +poncio +porfirio +primo +prospero +prudencio +quique +rafael +raimundo +rainerio +ramiro +ramón +raúl +raymundo +régulo +reinaldo +remigio +renato +reyes +reynaldo +ricardo +rico +roberto +rodolfo +rodrigo +rogelio +rogerio +rolando +roldán +román +roque +rosario +rubén +rufino +ruperto +ruy +sabas +sal +salomón +salvador +sancho +sandalio +sans +santiago +santos +saturnino +saulo +sebastián +sergio +seve +severiano +severino +severo +silvestre +silvio +simón +sofronio +sosimo +tacito +tadeo +teobaldo +teodoro +teodosio +teódulo +teófilo +tercero +tiburcio +timoteo +tito +tomás +tonio +toño +trinidad +tristán +ulises +urbano +valentín +valeriano +valerio +vasco +velasco +venceslás +vicente +víctor +victorino +vidal +vincenç +vinicio +virgilio +vito +wilfredo +ximen +ximenez +zacarías \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/spanish_surnames.txt b/src/main/resources/assets/customnpcs/markovnames/spanish_surnames.txt new file mode 100644 index 000000000..328a4cf8d --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/spanish_surnames.txt @@ -0,0 +1,550 @@ +abadía +abadiano +abalo +abarca +abascal +abasolo +abrigo +abril +acevedo +aceves +acosta +adames +adan +aguado +aguera +aguero +aguilar +aguinaga +aguirre +alas +alba +albacete +albaladejo +albareda +albarracín +albarrán +alburquerque +alcalá +alcantara +aldana +alegre +alegría +alén +alfonseca +almánzar +almirón +alonso +alou +altamira +altamirano +álvarez +alvear +alzamora +amaya +amescua +anglada +angulo +anon +aracil +aragonés +arancibia +aranda +arcaño +arévalo +arguello +ariza +armenteros +arraiza +arrate +arredondo +arroyo +arrúa +arruabarrena +arruebarrena +artiñano +asencio +asensi +asensio +asín +asquerino +astudillo +ávalos +ávila +avilés +aznar +azpilicueta +azucena +badillo +balenciaga +ballesta +baltra +banegas +barboza +barea +barquín +barradas +barragan +batista +bautista +baviera +becerril +bejarano +bello +benitez +bermudez +bernárdez +berrios +bettencourt +bielsa +bilbao +blanco +blandón +blas +bobadilla +bolaño +bolaños +bonastre +borges +borla +borrero +bracamontes +bracho +bravo +brenes +brugué +brugués +bueno +buenvenida +bustamante +cabal +caballero +cabello +calderón +calvente +campillo +cañizares +cannella +caraballo +carazo +carbonell +cárdenas +cardona +carmona +carpintero +carpio +carrasco +carrasquillo +carrera +carreras +cartagena +casablancas +casas +casilla +casillas +castañeda +castelblanco +castellano +castellanos +castillo +castrillón +ceballos +cepeda +cervantes +cevallos +chacón +chávez +cienfuegos +cisneros +cisternas +claros +claver +collantes +colomer +colón +congost +copello +cordero +cordova +coria +coronado +corrales +correa +cortes +cortizo +covarrubias +crespi +cruz +cuadra +cubilla +cuellar +cuello +cuesta +cueto +damirón +dávila +de#arguello +de#la#cruz +de#la#cueva +de#la#fuente +de#la#rosa +de#la#vega +de#los#santos +de#lucas +de#minaur +de#miñaur +de#ribera +de#soto +de#vargas +de#jesus +del#granado +del#negro +del#rosario +del#toro +delfin +delgado +derbez +díaz +diego +dimas +domínguez +duarte +duque +echazú +eizaguirre +enríquez +escalera +escobar +esguerra +espejo +espina +espinal +espinosa +esteve +estrada +expósito +fajardo +falcon +fandiño +fernández +ferreiro +ferrero +ferriz +ferro +figueras +figuerola +florencio +flores +florimón +forero +francisco +fuenmayor +fuentes +gabarain +galarza +galdames +galdón +galdós +gallardo +gallego +gallegos +galvan +galvez +gamboa +garbajosa +garci +garcía +garrido +garza +gay +godínez +godoy +gómez +gonzález +gordon +gracián +guaita +guajardo +guardado +guardia +guerra +guerrero +gutiérrez +guzmán +hechavarría +henao +hermosillo +hermoza +hernández +hernán#gómez +hernanz +herrada +herrera +herreros +hervás +hidalgo +horta +sáenz#de#oiza +huertas +hurtado +ibáñez +iglesias +inciarte +iniesta +iraheta +iturri +jaén +jara +jerónimo +jiménez +juárez +karanka +kindelán +lavalle +lebrón +leon +leyva +libertad +lizano +lizárraga +llompart +llorente +lobo +lópez +lópez#de#lacalle +loya +lucena +lucero +lucio +lugo +luz +machuca +madero +madrazo +maestre +maldonado +malla +mancisidor +marciano +mariano +mariátegui +marqués +marrero +marron +martínez +martos +marzo +mata +mateo +mateos +máynez +mayor +mayoral +maytín +mazo +medel +medina +mejía +menaldo +mendez +mendia +mendoza +menem +menendez +menezes +merino +milian +miranda +molinero +montana +montaño +montenegro +montero +montes +montes#de#oca +morales +moreno +morillo +morón +moya +mucciolo +muniz +muñoz +muralles +nabarro +nápoles +navarro +navas +negrin +negro +nieto +nieves +ñíguez +noguera +norales +novoa +nunez +ocampos +oquendo +ordóñez +orjuela +oropeza +ortega +ortiz +oseguera +ozuna +pabón +pacheco +padilla +palazuelos +palomo +paredes +parejo +parera +parra +pascual +pastrana +pazmiño +peguero +peinado +peña +penagos +peñate +peralta +perdomo +perea +pérez +perroni +perurena +pestano +picallo +picazo +pichardo +pimentel +pineda +piñera +pinto +piquer +polaco +polanco +ponce +porcel +portela +posada +postigo +prado +punto +purita +quesada +quevedo +quezada +quintal +quintana +quintanilla +quintero +rada +rafaeli +ramírez +ramiro +rascon +recarte +renteria +restrepo +ríos +rivera +riveros +rodríguez +rojas +rojo +romaña +romero +rondon +rosa +rosario +ruiz +ruiz#de#alarcón +ruvalcaba +sacasa +saiz +salazar +salcido +saldaña +saldívar +salvador +samaniego +sánchez +sandoval +santa#cruz +santayana +santiago +santisteban +santos +sanz +sarasola +sastre +saucedo +sedeño +seguel +sepúlveda +serrano +silvestre +sinaloa +siqueiros +solana +solano +solarte +sosa +soto +sotomayor +suarez +tatís +tato +tavarez +taveras +tejada +tobón +todero +toledano +toledo +tomás +topete +torre +torres +totanés +treviño +triana +trueba +unzaga +uriarte +urías +uriburu +urquía +valbuena +valderrama +valdivieso +valenciano +valiente +vallejos +valverde +vasquez +vega +velazco +velazquez +verdasco +vicente +victorino +vidal +vilana +villalobos +villanueva +villaseñor +viniegra +yanes +zamacois +zambrano +zapata +zapatero +zarazúa +zayas +zorrilla +zuloaga \ No newline at end of file diff --git a/src/main/resources/assets/customnpcs/markovnames/welsh_female.txt b/src/main/resources/assets/customnpcs/markovnames/welsh_female.txt new file mode 100644 index 000000000..2f6009bd1 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/welsh_female.txt @@ -0,0 +1,310 @@ +Addfwyn +Aderyn +Adlais +Adwen +Aelwen +Aerfen +Aeron +Aeronwen +Aeronwy +Afryl +Alaw +Aldyth +Alwen +Alys +Amranwen +Aneira +Anest +Angharad +Ann +Anwen +Annwr +Annwyl +Arddun +Arianell +Arianrhod +Arianwen +Arwen +Aurddolen +Auron +Awela +Awena +Banwen +Beca +Berwen +Bethan +Beti +Betrys +Blodeuedd +Blodwedd +Blodwen +Branwen +Brengwain +Briallen +Brisen +Bronmai +Bronwen +Brythonwen +Buddug +Cadi +Cain +Calan +Canaid +Caron +Caronwen +Carwen +Caryl +Carys +Catrin +Ceindeg +Ceindrych +Ceinfryn +Ceinwen +Ceirios +Ceri +Ceridwen +Cerys +Collwen +Creuddylad +Crisiant +Crystyn +Cyffin +Daron +Deilwen +Del +Delun +Delwen +Delyn +Delyth +Deris +Derwena +Deryn +Deryth +Dilwen +Dilys +Drudwen +Drysi +Dwyfor +Dwynwen +Dwyryd +Dwysan +Dyddanwy +Dyddgu +Dyfi +Ebrill +Edwy +Efa +Eigra +Eilir +Eilonwy +Eilwen +Eira +Eirian +Eirianwen +Eirianedd +Eiriol +Eirlys +Eirwen +Eirys +Elan +Elain +Elen +Elenid +Eleri +Elinor +Elisabeth +Elli +Elliw +Eluned +Enfys +Enid +Eos +Erin +Eryl +Esyllt +Ethni +Eurfron +Euron +Eurddolyn +Eurwen +Ewig +Faleiry +Fanw +Ffion +Fflur +Ffraid +Ffreuer +Fioled +Gaenor +Geinor +Generys +Glenda +Glenys +Glesni +Glynis +Goleubryd +Goleudydd +Grug +Gwawr +Gwawrddydd +Gwawrwen +Gwen +Gwenda +Gwenddydd +Gwendolen +Gwener +Gwenfair +Gwenfor +Gwenfrewi +Gwenfron +Gwenhwyfar +Gwenith +Gwenllian +Gwenlyn +Gwennan +Gwennant +Gwennol +Gwenol +Gwenydd +Gwenynan +Gwerful +Gwernen +Gwernfyl +Gwlithen +Gwyddelan +Gwyddfid +Gwladys +Gwylan +Gwylfai +Gwyneth +Gwynonwen +Haf +Hafgan +Hafren +Hafwen +Heddwen +Hedydd +Heini +Heledd +Heulwen +Heulyn +Hydref +Hywela +Iarlles +Idanwen +Ifanna +Ifanwy +Ilar +Iona +Ionor +Iorwen +Iseult +Ithela +Leri +Lili +Lilwen +Liwsi +Lleucu +Llian +Llinos +Llio +Lluan +Lodes +Lowri +Luned +Lyneth +Lynfa +Lynwen +Mabli +Madlen +Maelona +Maelorwen +Mai +Mair +Mallt +Manon +Marged +Medeni +Medi +Medwen +Mefin +Megan +Meinwen +Meirionwen +Melangell +Meleri +Meudwen +Modron +Modwen +Moelwen +Mold +Mona +Morforwyn +Morfudd +Morwen +Mwyndeg +Mwynen +Myfanwy +Nan +Nans +Nant +Nefyn +Nerys +Nest +Nia +Non +Olwen +Owena +Perl +Rebeca +Rhagnell +Rhedyn +Rhiain +Rhiangar +Rhiannon +Rhianwen +Rhianydd +Rhondda +Rhonwen +Rhosan +Rhoslyn +Rhunedd +Rosentyl +Rowena +Sara +Seirial +Seirian +Seren +Sian +Sidan +Sioned +Siriol +Siwan +Siwsan +Sulian +Sulwen +Surwen +Tafwys +Tangwen +Tangwystl +Tanwen +Taryn +Tegan +Tegeirian +Tegfedd +Tegwedd +Tegwen +Tegyd +Teiddwen +Teifi +Telaid +Teleri +Telyn +Tesni +Tirion +Tonwen +Tudful +Undeg +Wena +Wenhaf +Ynyra diff --git a/src/main/resources/assets/customnpcs/markovnames/welsh_male.txt b/src/main/resources/assets/customnpcs/markovnames/welsh_male.txt new file mode 100644 index 000000000..dfd0984e0 --- /dev/null +++ b/src/main/resources/assets/customnpcs/markovnames/welsh_male.txt @@ -0,0 +1,272 @@ +Adda +Addaon +Adeon +Aedd +Aeddan +Aelhearn +Aelwyn +Aeron +Afagddu +Afallon +Afan +Alan +Alaw +Alawn +Alban +Aldith +Aldryd +Alec +Aled +Alun +Alwyn +Amaethon +Amlodd +Anarawd +Andreas +Aneirin +Angwyn +Anhun +Arawn +Arial +Arianwyn +Arnallt +Arofan +Aron +Arthen +Arthfael +Arthgen +Arthur +Arwel +Arwyn +Asaff +Aurfryn +Auryn +Awen +Awsten +Baeddan +Baglan +Barri +Barti +Bedaws +Bedwyn +Bedivere +Bedwyn +Bedwyr +Berddig +Bergam +Berwyn +Bevan +Beuno +Beynon +Bleddyn +Bledig +Bledri +Blwchfardd +Boreugwyn +Bran +Branwaladr +Breichiawl +Brice +Brioc +Brochfael +Brychan +Bryn +Brynllyn +Brynmor +Bryngwyn +Brython +Cadell +Cadfael +Cadog +Cadwaladr +Cadwallon +Cadwgan +Caerwyn +Caradog +Carwyn +Caswallon +Cawrdaf +Cecil +Cedrych +Cei +Ceinfryn +Ceiriog +Celyn +Celynen +Cennydd +Ceredig +Ceri +Cewydd +Cian +Cledwyn +Clwyd +Clydai +Clydno +Coel +Collen +Colwyn +Conan +Conwy +Cospatrick +Craigfryn +Cranog +Crwys +Culhwch +Cunedda +Curig +Cyfeiliog +Cyffin +Cymro +Cynan +Cynddelw +Cyndeyrn +Cynddylan +Cynedda +Cynfab +Cynfarch +Cynfael +Cynfrig +Cynog +Cynon +Dafydd +Dai +Dedwydd +Deian +Deiniol +Delwyn +Derfel +Deri +Dewi +Dogmael +Dwyryd +Dyfri +Dylan +Ednyfed +Einion +Eirian +Eirwyn +Elffin +Elidir +Elis +Elwyn +Elystan +Emlyn +Emrys +Emyr +Evan +Fflamddwyn +Ffransis +Fychan +Gareth +Gawain +Geraint +Gerallt +Gethin +Gildas +Gilfaethwy +Glanmor +Glyn +Goronwy +Grigor +Gruffydd +Gwaednerth +Gwalchgwyn +Gwalchmai +Gwatcyn +Gwaun +Gwenlyn +Gwili +Gwilym +Gwion +Gwydderig +Gwyddno +Gwydion +Gwyn +Gwynfor +Gwythyr +Hafgan +Heddwyn +Heilyn +Heini +Hergest +Heulfryn +Heulyn +Huw +Hywel +Iago +Ianto +Idris +Idwal +Iestin +Ieuan +Ifan +Ifor +Illtyd +Ioan +Iolo +Iorweth +Lewys +Llew +Lloyd +Llyr +Llywarch +Llywelyn +Mabon +Macsen +Madog +Mael +Maelgwyn +Maelgwn +Maelmadog +Math +Mathonwy +Medrawd +Meical +Meilyr +Meirion +Meredudd +Merfyn +Meurig +Mihangel +Moelwyn +Morgan +Morien +Myrddin +Nudd +Owain +Pawl +Pedr +Peredur +Powel +Pryderi +Pwyll +Rhein +Rheinallt +Rhisiart +Rhodri +Rhun +Rhydderch +Rhydian +Rhydwyn +Rhys +Robat +Seiriol +Selwyn +Siarl +Siencyn +Simwnt +Sion +Sionyn +Sior +Steffan +Sulien +Sulwyn +Taliesin +Tegwyn +Teilo +Tewdwr +Tomos +Trefor +Trystan +Wyn +Ynyr