summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/rustanddust/util/PlayerRecord.java
blob: 3d51d430311a6b33e1be764605c99fa863a6561f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package ch.asynk.rustanddust.util;

import com.badlogic.gdx.utils.Pool;
import com.badlogic.gdx.utils.Disposable;

import ch.asynk.rustanddust.ui.List;
import ch.asynk.rustanddust.engine.util.Collection;
import ch.asynk.rustanddust.engine.util.IterableArray;

public class PlayerRecord implements List.ListElement, Disposable, Pool.Poolable
{
    public int id;
    public String name;
    public String email;
    public String hash;
    public String s;

    public static Collection<List.ListElement> list = new IterableArray<List.ListElement>(10);

    private static final Pool<PlayerRecord> gameRecordPool = new Pool<PlayerRecord>()
    {
        @Override
        protected PlayerRecord newObject() {
            return new PlayerRecord();
        }
    };

    public static void clearPool()
    {
        gameRecordPool.clear();
    }

    public static PlayerRecord get()
    {
        PlayerRecord r = gameRecordPool.obtain();
        return r;
    }

    public static PlayerRecord get(int idx)
    {
        return (PlayerRecord) list.get(idx);
    }

    public static PlayerRecord remove(int idx)
    {
        return (PlayerRecord) list.remove(idx);
    }

    public static void clearList()
    {
        for(List.ListElement r : list)
            ((PlayerRecord) r).dispose();
        list.clear();
    }

    public PlayerRecord()
    {
    }

    @Override
    public void reset()
    {
        this.s = null;
    }

    @Override
    public void dispose()
    {
        gameRecordPool.free(this);
    }

    @Override
    public String s()
    {
        if (s == null) {
            s = String.format("%s - %s", name , (hasEmail() ? "OK" : "-"));
        }
        return s;
    }

    @Override
    public String toString()
    {
        return String.format("%s - %s", name , email);
    }

    public boolean hasEmail()
    {
        return (this.email != null && !this.email.isEmpty());
    }
}