![Page 1: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/1.jpg)
Lecture 6: Basic Entities
TEALS MINECRAFT PROJECT
![Page 2: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/2.jpg)
A NEW MINECRAFT OBJECT: ENTITIES
So far, you've learned about two different kinds of Minecraft objects: items and blocks. For the rest of this project, you'll work with entities.
Entities Have Unique State
Each entity instance has its own state (health, items, damage, and so forth)
Even items are a type of entity (EntityItem)
![Page 3: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/3.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
Robot
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 4: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/4.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
Robot
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
![Page 5: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/5.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 6: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/6.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 7: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/7.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 8: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/8.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 9: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/9.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 10: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/10.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 11: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/11.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
Robot
![Page 12: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/12.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
Robot
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
![Page 13: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/13.jpg)
ENTITY BASICS – ENTITY HIERARCHY
Entity
Robot
EntityAgeable EntityFlyingEntityMob
EntityCreature
EntityLiving
EntityAnimal
EntityTameable
![Page 14: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/14.jpg)
EntityAITasks
![Page 15: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/15.jpg)
EntityAITasks- Add behaviors to EntityLiving entities
![Page 16: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/16.jpg)
EntityAITasks- Add behaviors to EntityLiving entities- Derive from EntityAIBase
![Page 17: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/17.jpg)
EntityAITasks- Add behaviors to EntityLiving entities- Derive from EntityAIBase- Run with a specified priority
![Page 18: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/18.jpg)
EntityAITasks- Add behaviors to EntityLiving entities- Derive from EntityAIBase- Run with a specified priority- Are named EntityAIXXX, where XXX is the description of the task
![Page 19: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/19.jpg)
EntityAITasks- Add behaviors to EntityLiving entities- Derive from EntityAIBase- Run with a specified priority- Are named EntityAIXXX, where XXX is the description of the task
Example Tasks- EntityAIWander — move from current location to a random spot occasionally- EntityAIPanic — run around frantically for a period of time- EntityAIFleeSun — try to move to a darker spot- EntityAIWatchClosest — look at closest nearby entity- EntityAIAvoidEntity — avoid another entity- EntityAIEatGrass — find grass. Eat grass.
![Page 20: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/20.jpg)
THE GAME LOOP
All tasks are executed in the "game loop".
The Minecraft game loop runs 20 times every second. Thus, one Minecraft "tick" is 50ms (50 milliseconds) long.
In one tick, every animated thing in Minecraft is updated.
![Page 21: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/21.jpg)
THE GAME LOOP
If all tasks finish before the tick is over (less than 50ms), the game sits idle until the tick is done.
If all tasks take longer than 50ms to complete, then the world slows down as it struggles to get all the work done. Hopefully this rarely happens.
The game can address this situation by doing one of two things:
1. Reduce the number of entities and blocks loaded at any time
2. Increase the performance of the task code
This is why you often see the world fade in and out in the distance — the game is managing how many things it has to keep track of at the same time.
![Page 22: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/22.jpg)
THE GAME LOOP
You can adjust some of the Minecraft world workload by starting up the game, and going into options, then video settings. How can changing these settings reduce the work done in a single tick?
![Page 23: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/23.jpg)
EntityAITask FUNCTIONS
EntityAITask classes have four primary methods to implement:
// Returns true if the task should be executed.public boolean shouldExecute();
// Called when the task begins execution.public void startExecuting();
// Returns true if an already-executing task should continue.public boolean continueExecuting();
// Called once per tick (20 times per second)public void updateTask();
![Page 24: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/24.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 25: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/25.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 26: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/26.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 27: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/27.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 28: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/28.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 29: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/29.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 30: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/30.jpg)
EntityAITaskCODE
package tealsmc.anything;import net.minecraft.entity.EntityLiving;import net.minecraft.entity.ai.EntityAIBase;
public class EntityAIExampleTask extends EntityAIBase {
private EntityLiving entity; // Target Entity
public EntityAIExampleTask (EntityLiving entity) {this.entity = entity;
}
@Overridepublic boolean shouldExecute() {
// This abstract method must be implemented.return true;
}}
![Page 31: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/31.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 32: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/32.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 33: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/33.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 34: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/34.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 35: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/35.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 36: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/36.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 37: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/37.jpg)
USING EntityAITask
package tealsmc.anything;
import net.minecraft.entity.EntityLiving;import net.minecraft.world.World;
public class ExampleEntity extends EntityLiving; {
public ExampleEntity (World world) {super(world);
tasks.addTask (1, new EntityAIExampleTask(this));}
}
![Page 38: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/38.jpg)
OTHER ENTITY FIELDS
// Entity World Positiondouble posX, posY, posZ;
// The world in which the entity is locatedWorld worldObj;
// Whether the entity is deadboolean isDead;
// Whether the entity is in waterboolean inWater;
![Page 39: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/39.jpg)
OTHER ENTITY METHODS
// Drops items on the ground at the entities location.EntityItem dropItem (Item item, int amount);
// Sets the entities location to the specified x, y and z.void moveEntity (double x, double y, double z);
// Resize the entity if it's resizeable.void setSize (float width, float height);
// Called when the entity collides with a player.void onCollideWithPlayer (EntityPlayer player);
![Page 40: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/40.jpg)
ROBOTS
Robots are entities with special properties that you will use as a base for entities you create in the entity labs. Robots:
• look like rectangular prisms with solid colors and outlines,
• short-circuit and take 5 damage for every second they're in water,
• play sounds similar to the iron golem,
• attack in groups (if something harms or obstructs a robot, nearby robots will all attack the offending entity).
![Page 41: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/41.jpg)
ROBOT HIERARCHY
Entity
Robot
EntityMob
EntityCreature
EntityLiving
![Page 42: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/42.jpg)
ROBOT HIERARCHY
Entity
Robot
EntityMob
EntityCreature
EntityLiving- Moves around the world
![Page 43: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/43.jpg)
ROBOT HIERARCHY
Entity
Robot
EntityMob
EntityCreature
EntityLiving- Moves around the world
- Can move on its own- May attack
![Page 44: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/44.jpg)
ROBOT HIERARCHY
Entity
Robot
EntityMob
EntityCreature
EntityLiving- Moves around the world
- Can move on its own- May attack
- Advanced attack behaviors- Aware of light levels- Can wield tools and weapons- Advanced pathfinding abilities
![Page 45: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/45.jpg)
ROBOT HIERARCHY
Entity
Robot
EntityMob
EntityCreature
EntityLiving- Moves around the world
- Can move on its own- May attack
- Advanced attack behaviors- Aware of light levels- Can wield tools and weapons- Advanced pathfinding abilities
Base for lab entities
![Page 46: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/46.jpg)
SPAWNING ROBOTS
Once you’ve coded up a robot, you can summon them in game by typing
/robot <robot_name>
For lab 6, we'll be creating a leaf-converter robot of type "leafbot", so to summon a new leafbot, type the following command any time in the game:
/robot leafbot
![Page 47: TEALS Minecraft Project · Each entity instance has its own state (health, items, damage, and so forth) Even items are a type of entity (EntityItem) ENTITY BASICS –ENTITY HIERARCHY](https://reader034.vdocuments.mx/reader034/viewer/2022043010/5fa09fad36236d4d38274805/html5/thumbnails/47.jpg)
LAB 6: LEAF-CONVERTER ROBOT
In Lab 6, you will create your first Minecraft entity: a leaf-converter robot. You will program this robot to (1) wander around the map on its own, and (2) randomly convert nearby blocks into leaves.