Merge branch 'dev'

This commit is contained in:
KAMKEEL committed 2021-06-13 19:28:22 -04:00
commit acd666e073
55 files changed
+15248 -132

No files matched your search

+14
View File
@@ -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.
@@ -0,0 +1,19 @@
package net.minecraft.block.properties;
import java.util.Collection;
/** This code is owned by Minecraft */
public interface IProperty<T extends Comparable<T>>
{
String getName();
Collection<T> getAllowedValues();
Class<T> getValueClass();
/**
* Get the name for the given value.
*/
String getName(T value);
}
@@ -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<IProperty> getPropertyNames();
<T extends Comparable<T>> T getValue(IProperty<T> property);
<T extends Comparable<T>, V extends T> IBlockState withProperty(IProperty<T> property, V value);
<T extends Comparable<T>> IBlockState cycleProperty(IProperty<T> property);
ImmutableMap<IProperty, Comparable> getProperties();
Block getBlock();
}
+123
View File
@@ -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<Vec3i>
{
/** 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();
}
}
@@ -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<BlockPos> 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<BlockPos>()
{
public Iterator<BlockPos> iterator()
{
return new AbstractIterator<BlockPos>()
{
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<BlockPos.MutableBlockPos> 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<BlockPos.MutableBlockPos>()
{
public Iterator<BlockPos.MutableBlockPos> iterator()
{
return new AbstractIterator<BlockPos.MutableBlockPos>()
{
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); }
}
}
@@ -0,0 +1,81 @@
package nikedemos.markovnames;
import java.util.HashMap;
import java.util.Map;
public class HashMap2D<T1, T2, T3> {
public final Map<T1, Map<T2, T3>> mMap;
/*
https://stackoverflow.com/a/10299689/9355344
*/
public HashMap2D() {
mMap = new HashMap<T1, Map<T2, T3>>();
}
/**
* 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 <code>null</code> if none
* @see Map#put(Object, Object)
*/
public T3 put(T1 key1, T2 key2, T3 value) {
Map<T2, T3> map;
if (mMap.containsKey(key1)) {
map = mMap.get(key1);
} else {
map = new HashMap<T2, T3>();
mMap.put(key1, map);
}
return map.put(key2, value);
}
/**
* Returns the value to which the specified key is mapped, or <code>null</code> 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 <code>null</code> 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 <code>true</code> 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();
}
}
@@ -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<String, MarkovGenerator> GENERATORS = new HashMap<String, MarkovGenerator>();
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<Entry<String, MarkovGenerator>> g = GENERATORS.entrySet().iterator();
while (g.hasNext()) {
Entry<String, MarkovGenerator> pair = (Entry<String, MarkovGenerator>) 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--------------");
}
}
}
}
@@ -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<String, String, Integer> occurrences = new HashMap2D<String, String, Integer>();
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<Entry<String, Map<String, Integer>>> i = occurrences.mMap.entrySet().iterator();
while (i.hasNext()) {
Entry<String, Map<String, Integer>> pair = (Entry<String, Map<String, Integer>>) 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<Entry<String, Map<String, Integer>>> it = occurrences.mMap.entrySet().iterator();
StringBuilder sequence = new StringBuilder("");
while (it.hasNext()) {
Entry<String, Map<String, Integer>> pair = (Entry<String, Map<String, Integer>>) 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<Entry<String, Integer>> j = occurrences.mMap.get(sequence.toString()).entrySet().iterator();
while (j.hasNext()) {
Entry<String, Integer> entry = j.next();
subSize += entry.getValue();
}
// and now, the last iterator, with a random, just like before
randomNumber = rng.nextInt(subSize);
Iterator<Entry<String, Integer>> k = occurrences.mMap.get(sequence.toString()).entrySet().iterator();
String chosen = "";
while (k.hasNext()) {
Entry<String, Integer> 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
}
}
@@ -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();
}
}
@@ -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;
}
}
@@ -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();
}
}
@@ -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();
}
}
@@ -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;
}
}
@@ -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();
}
}
@@ -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();
}
}
@@ -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());
}
}
@@ -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();
}
}
@@ -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;
}
}
@@ -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();
}
}
@@ -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;
}
}
+20 -5
View File
@@ -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;
@@ -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();
+3
View File
@@ -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;
+65 -11
View File
@@ -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);
}
}
@@ -27,13 +27,18 @@ public class ModelDataShared{
private HashMap<String,ModelPartData> parts = new HashMap<String,ModelPartData>();
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();
@@ -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();
}
}
}
@@ -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
@@ -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");
@@ -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));
}
@@ -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");
@@ -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;
@@ -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;
@@ -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);
@@ -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");
}
}
@@ -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;
// }
}
@@ -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;
}
@@ -925,4 +925,23 @@ companion.stage=Stage
companion.owner=Owner
companion.strength=Strength
companion.talent=Talent
companion.level=Level
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
@@ -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
File diff suppressed because it is too large. Load diff
@@ -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
@@ -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
@@ -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
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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