Building.java 1.74 KB
Newer Older
Florian Grabowski's avatar
Florian Grabowski committed
1
2
package de._82grfl1bif.KPI_Visualizer.structures;

3
import de._82grfl1bif.KPI_Visualizer.data.Klasse;
Florian Grabowski's avatar
Florian Grabowski committed
4
5
import org.bukkit.Material;

6
import java.awt.Point;
Florian Grabowski's avatar
Florian Grabowski committed
7
8
9

public class Building extends Structure{
    private final int height;
Florian Grabowski's avatar
Florian Grabowski committed
10
    public Klasse klasse = null;
Florian Grabowski's avatar
Florian Grabowski committed
11

Florian Grabowski's avatar
Florian Grabowski committed
12
    @Deprecated
Florian Grabowski's avatar
Florian Grabowski committed
13
    public Building(int width, int height, Material material){ //Buildings are Square -> no depth
14
15
16
17
        this.width.x = width;
        this.width.y = width;
        this.height = height;
        this.material = material;
Florian Grabowski's avatar
Florian Grabowski committed
18
        if(this.width.x < 5){
Florian Grabowski's avatar
Florian Grabowski committed
19
            throw new IllegalArgumentException("keine Gebäude kleiner 5 wegen 2 Gehweg");
20
21
22
        }
    }

Florian Grabowski's avatar
Florian Grabowski committed
23
    public Building(Point width/*and depth for complex algorithms*/, int height, Material material){
Florian Grabowski's avatar
Florian Grabowski committed
24
25
26
        this.width = width;
        this.height = height;
        this.material = material;
Florian Grabowski's avatar
Florian Grabowski committed
27
        if(this.width.x < 5 || this.width.y < 5){
Florian Grabowski's avatar
Florian Grabowski committed
28
            throw new IllegalArgumentException("keine Gebäude kleiner 5 wegen 2 Gehweg");
Florian Grabowski's avatar
Florian Grabowski committed
29
30
31
        }
    }

32
    public Building(Material material, Klasse klasse, String name){ //Buildings are Square -> no depth
Florian Grabowski's avatar
Florian Grabowski committed
33
        this.klasse = klasse;
34
        this.material = material;
Florian Grabowski's avatar
Florian Grabowski committed
35
36
        this.width = new Point((int)Math.round((klasse.variables+5)),(int)Math.round((klasse.variables+5))); //TODO: make this work with treemap and square
        this.area = klasse.variables*25;
37
        this.name = name;
Florian Grabowski's avatar
Florian Grabowski committed
38
        this.height = klasse.functions;
Florian Grabowski's avatar
Florian Grabowski committed
39
        if(this.width.x < 5 || this.width.y < 5){
Florian Grabowski's avatar
Florian Grabowski committed
40
            throw new IllegalArgumentException("keine Gebäude kleiner 5 wegen 2 Gehweg");
41
42
43
        }
    }

Florian Grabowski's avatar
Florian Grabowski committed
44
45
46
    public int getHeight() {
        return this.height;
    }
47
48
49
50
51
52

    @Override
    public Structure getFromTree(String checkName) {
        if(this.name.equals(checkName))return this;
        return null;
    }
Florian Grabowski's avatar
Florian Grabowski committed
53
}