001/* 002 * Trident - A Multithreaded Server Alternative 003 * Copyright 2014 The TridentSDK Team 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package net.tridentsdk.server.entity; 018 019import net.tridentsdk.base.Position; 020import net.tridentsdk.meta.nbt.CompoundTag; 021import net.tridentsdk.meta.nbt.IntTag; 022 023import java.util.UUID; 024 025public abstract class TridentBreedable extends TridentAgeable { 026 protected volatile int loveTimeout; 027 protected volatile boolean inLove; 028 protected volatile boolean canBreed = false; 029 030 public TridentBreedable(UUID id, Position spawnLocation) { 031 super(id, spawnLocation); 032 } 033 034 @Override 035 public boolean canBreed() { 036 return canBreed; 037 } 038 039 @Override 040 public boolean isInLove() { 041 return inLove; 042 } 043 044 @Override 045 public void doLoad(CompoundTag tag) { 046 this.loveTimeout = ((IntTag) tag.getTag("InLove")).value(); 047 this.inLove = false; 048 } 049}