2017-11-19 12:25:09 +01:00
|
|
|
/*
|
2018-11-30 12:27:41 +01:00
|
|
|
* Copyright (c) 2018, 7u83 <7u83@mail.ru>
|
2017-11-19 12:25:09 +01:00
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions are met:
|
|
|
|
*
|
|
|
|
* * Redistributions of source code must retain the above copyright notice, this
|
|
|
|
* list of conditions and the following disclaimer.
|
|
|
|
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
|
|
* and/or other materials provided with the distribution.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*/
|
2018-12-09 01:53:47 +01:00
|
|
|
package opensesim.world;
|
|
|
|
|
2018-12-28 13:06:15 +01:00
|
|
|
|
2018-12-09 01:53:47 +01:00
|
|
|
import org.json.JSONObject;
|
2017-11-19 12:25:09 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author 7u83 <7u83@mail.ru>
|
|
|
|
*/
|
2018-12-09 01:53:47 +01:00
|
|
|
public abstract class AbstractTrader implements Trader {
|
|
|
|
|
2018-12-21 23:49:21 +01:00
|
|
|
private String name = "Unnamed";
|
2018-12-09 01:53:47 +01:00
|
|
|
private String status;
|
|
|
|
private World world;
|
2019-01-14 08:43:24 +01:00
|
|
|
protected AccountImpl account;
|
2017-11-19 12:25:09 +01:00
|
|
|
|
2018-12-09 01:53:47 +01:00
|
|
|
/**
|
|
|
|
* @return the world
|
|
|
|
*/
|
|
|
|
public final World getWorld() {
|
|
|
|
return world;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param world the world to set
|
|
|
|
*/
|
|
|
|
public void setWorld(World world) {
|
|
|
|
this.world = world;
|
|
|
|
}
|
|
|
|
|
2018-12-19 18:18:11 +01:00
|
|
|
private boolean verbose=false;
|
2018-12-09 01:53:47 +01:00
|
|
|
|
2018-12-19 18:18:11 +01:00
|
|
|
public boolean isVerbose() {
|
|
|
|
return verbose;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setVerbose(boolean verbose) {
|
|
|
|
this.verbose = verbose;
|
|
|
|
}
|
|
|
|
|
2018-12-09 01:53:47 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the status
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public String getStatus() {
|
|
|
|
return status;
|
|
|
|
}
|
|
|
|
|
2018-12-19 18:18:11 +01:00
|
|
|
|
2018-12-09 01:53:47 +01:00
|
|
|
/**
|
|
|
|
* @param status the status to set
|
|
|
|
*/
|
|
|
|
protected void setStatus(String status) {
|
|
|
|
this.status = status;
|
2018-12-19 18:18:11 +01:00
|
|
|
if (verbose){
|
2018-12-21 23:49:21 +01:00
|
|
|
System.out.printf("STA: %s: %s\n",this.getName(),this.getStatus());
|
2018-12-19 18:18:11 +01:00
|
|
|
}
|
|
|
|
|
2018-12-09 01:53:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the name
|
|
|
|
*/
|
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param name the name to set
|
|
|
|
*/
|
|
|
|
protected void setName(String name) {
|
|
|
|
this.name = name;
|
|
|
|
}
|
|
|
|
|
2018-12-12 19:58:10 +01:00
|
|
|
public AbstractTrader(World world, JSONObject cfg) {
|
2018-12-09 01:53:47 +01:00
|
|
|
this.world=world;
|
2019-01-14 08:43:24 +01:00
|
|
|
this.account = new AccountImpl(world);
|
2018-12-09 01:53:47 +01:00
|
|
|
|
2018-12-28 13:06:15 +01:00
|
|
|
AssetPack pack;
|
|
|
|
pack = new AssetPack(this.world.getDefaultAssetPair().getCurrency(),1000);
|
|
|
|
this.account.add(pack);
|
|
|
|
pack = new AssetPack(this.world.getDefaultAssetPair().getAsset(),2000);
|
|
|
|
this.account.add(pack);
|
2018-12-09 01:53:47 +01:00
|
|
|
}
|
|
|
|
|
2018-12-21 23:49:21 +01:00
|
|
|
protected void log(String s){
|
2018-12-09 01:53:47 +01:00
|
|
|
|
2018-12-21 23:49:21 +01:00
|
|
|
if (verbose){
|
|
|
|
System.out.printf("LOG: %s: %s\n",this.getName(),s);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2018-12-09 01:53:47 +01:00
|
|
|
|
2018-12-28 13:06:15 +01:00
|
|
|
@Override
|
2019-01-14 08:43:24 +01:00
|
|
|
public AccountImpl getAccount(){
|
2018-12-28 13:06:15 +01:00
|
|
|
return account;
|
|
|
|
}
|
2017-11-19 12:25:09 +01:00
|
|
|
}
|