Skip to content

Commit

Permalink
Added complete creature mod
Browse files Browse the repository at this point in the history
Fixed some trait propagation issues
  • Loading branch information
ago1024 committed May 2, 2016
1 parent 1928872 commit 0dd98d7
Show file tree
Hide file tree
Showing 20 changed files with 790 additions and 44 deletions.
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
<modelVersion>4.0.0</modelVersion>

<groupId>org.gotti.wurmunlimited</groupId>
<artifactId>samplemod</artifactId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>creaturemod</artifactId>
<version>2.2</version>
<packaging>jar</packaging>

<name>samplemod</name>
<name>creaturemod</name>

<dependencies>
<dependency>
<groupId>org.gotti.wurmunlimited</groupId>
<artifactId>server-modlauncher</artifactId>
<version>0.17.0-SNAPSHOT</version>
<version>0.17</version>
</dependency>
</dependencies>

Expand Down
3 changes: 3 additions & 0 deletions src/dist/creaturemod.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
classname=org.gotti.wurmunlimited.mods.creaturemod.CreatureMod
classpath=creaturemod.jar
serverPacks=creaturepack.jar
3 changes: 3 additions & 0 deletions src/dist/creaturemod/creaturepack.jar
Git LFS file not shown
2 changes: 0 additions & 2 deletions src/dist/samplemod.properties

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.gotti.wurmunlimited.mods.creaturemod;

import org.gotti.wurmunlimited.modloader.interfaces.Initable;
import org.gotti.wurmunlimited.modloader.interfaces.WurmMod;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Bull;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Calf;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Cat;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Chicken;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Cow;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Dog;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Foal;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Hen;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Horse;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Ocelot;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.PandaBear;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Pig;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Rooster;
import org.gotti.wurmunlimited.mods.creaturemod.creatures.Zebra;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreatures;

public class CreatureMod implements WurmMod, Initable {
public void init() {
ModCreatures.init();
ModCreatures.addCreature((ModCreature) new PandaBear());
ModCreatures.addCreature((ModCreature) new Zebra());
ModCreatures.addCreature((ModCreature) new Ocelot());
ModCreatures.addCreature((ModCreature) new Cat());
ModCreatures.addCreature((ModCreature) new Horse());
ModCreatures.addCreature((ModCreature) new Chicken());
ModCreatures.addCreature((ModCreature) new Rooster());
ModCreatures.addCreature((ModCreature) new Hen());
ModCreatures.addCreature((ModCreature) new Pig());
ModCreatures.addCreature((ModCreature) new Cow());
ModCreatures.addCreature((ModCreature) new Dog());
ModCreatures.addCreature((ModCreature) new Calf());
ModCreatures.addCreature((ModCreature) new Bull());
ModCreatures.addCreature((ModCreature) new Foal());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;

import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;

public class Bull extends Cow {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.BULL_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.BULL_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;

import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;

public class Calf extends Cow {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.CALF_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.CALF_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.creatures.ModTraits;
import org.gotti.wurmunlimited.modsupport.creatures.TraitsSetter;

import com.wurmonline.server.Server;
import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;

public class Cat implements ModCreature {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.CAT_WILD_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.CAT_WILD_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}

public boolean hasTraits() {
return true;
}

public String getTraitName(final int trait) {
switch (trait) {
case 24:
return "mainecoon";
default:
return null;
}
}

public void assignTraits(final TraitsSetter traitsSetter) {
if (Server.rand.nextInt(3) == 0) {
traitsSetter.setTraitBit(24, true);
}
}

@Override
public long calcNewTraits(double breederSkill, boolean inbred, long mothertraits, long fathertraits) {
return ModTraits.calcNewTraits(breederSkill, inbred, mothertraits, fathertraits, ModTraits.REGULAR_TRAITS, 1 << 24);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import com.wurmonline.server.Server;
import org.gotti.wurmunlimited.modsupport.creatures.TraitsSetter;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.CreatureTemplate;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.creatures.ModTraits;

public class Chicken implements ModCreature {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.CHICKEN_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.CHICKEN_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}

public boolean hasTraits() {
return true;
}

public String getTraitName(final int trait) {
switch (trait) {
case 24:
return "australorp";
case 25:
return "rhodeislandred";
case 26:
return "silvercampine";
default:
return null;
}
}

public void assignTraits(final TraitsSetter traitsSetter) {
if (Server.rand.nextInt(4) == 0) {
traitsSetter.setTraitBit(24, true);
} else if (Server.rand.nextInt(4) == 0) {
traitsSetter.setTraitBit(25, true);
} else if (Server.rand.nextInt(4) == 0) {
traitsSetter.setTraitBit(26, true);
}
}

@Override
public long calcNewTraits(double breederSkill, boolean inbred, long mothertraits, long fathertraits) {
return ModTraits.calcNewTraits(breederSkill, inbred, mothertraits, fathertraits, ModTraits.REGULAR_TRAITS, 1 << 24 | 1 << 25 | 1 << 26);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import com.wurmonline.server.Server;
import org.gotti.wurmunlimited.modsupport.creatures.TraitsSetter;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.CreatureTemplate;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.creatures.ModTraits;

public class Cow implements ModCreature {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.COW_BROWN_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.COW_BROWN_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}

public boolean hasTraits() {
return true;
}

public String getTraitName(final int trait) {
switch (trait) {
case 24:
return "blackangus";
case 25:
return "beltedgalloway";
default:
return null;
}
}

public void assignTraits(final TraitsSetter traitsSetter) {
if (Server.rand.nextInt(3) == 0) {
traitsSetter.setTraitBit(24, true);
} else if (Server.rand.nextInt(3) == 0) {
traitsSetter.setTraitBit(25, true);
}
}

@Override
public long calcNewTraits(double breederSkill, boolean inbred, long mothertraits, long fathertraits) {
return ModTraits.calcNewTraits(breederSkill, inbred, mothertraits, fathertraits, ModTraits.REGULAR_TRAITS, 1 << 24 | 1 << 25);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import com.wurmonline.server.Server;
import org.gotti.wurmunlimited.modsupport.creatures.TraitsSetter;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.CreatureTemplate;
import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;
import org.gotti.wurmunlimited.modsupport.creatures.ModCreature;
import org.gotti.wurmunlimited.modsupport.creatures.ModTraits;

public class Dog implements ModCreature {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.DOG_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.DOG_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}

public boolean hasTraits() {
return true;
}

public String getTraitName(final int trait) {
switch (trait) {
case 24: {
return "dalmatian";
}
case 25: {
return "husky";
}
default: {
return null;
}
}
}

public void assignTraits(final TraitsSetter traitsSetter) {
if (Server.rand.nextInt(3) == 0) {
traitsSetter.setTraitBit(24, true);
} else if (Server.rand.nextInt(3) == 0) {
traitsSetter.setTraitBit(25, true);
}
}

@Override
public long calcNewTraits(double breederSkill, boolean inbred, long mothertraits, long fathertraits) {
return ModTraits.calcNewTraits(breederSkill, inbred, mothertraits, fathertraits, ModTraits.REGULAR_TRAITS, 1 << 24 | 1 << 25);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;

import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;

public class Foal extends Horse {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.FOAL_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.FOAL_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.gotti.wurmunlimited.mods.creaturemod.creatures;

import org.gotti.wurmunlimited.modsupport.CreatureTemplateBuilder;

import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
import com.wurmonline.server.creatures.CreatureTemplateIds;
import com.wurmonline.server.creatures.NoSuchCreatureTemplateException;

public class Hen extends Chicken {
public CreatureTemplateBuilder createCreateTemplateBuilder() {
return new CreatureTemplateBuilder(CreatureTemplateIds.HEN_CID) {
public CreatureTemplate build() {
try {
return CreatureTemplateFactory.getInstance().getTemplate(CreatureTemplateIds.HEN_CID);
} catch (NoSuchCreatureTemplateException e) {
throw new RuntimeException((Throwable) e);
}
}
};
}
}
Loading

0 comments on commit 0dd98d7

Please sign in to comment.